package com.jeesharp.business.modules.setting.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 和风天气（QWeather）开发服务配置，用于小程序首页实况请求。
 * <p>在 {@code application*.yaml} 中通过前缀 {@code xinghuacun.qweather} 配置；密钥勿提交仓库，建议用环境变量注入。</p>
 *
 * @author jeesharp
 * @since 2026-05-18
 */
@Data
@Component
@ConfigurationProperties(prefix = "xinghuacun.qweather")
public class QWeatherProperties {

    /**
     * 是否启用实况拉取；未启用或密钥为空时首页天气使用内置默认文案。
     */
    private boolean enabled = false;

    /**
     * API Host，如开发订阅 {@code https://devapi.qweather.com} 或标准 {@code https://api.qweather.com}。
     */
    private String apiHost = "https://devapi.qweather.com";

    /**
     * JWT（控制台「凭据」中的 API Key / Token），请求头 {@code Authorization: Bearer &lt;key&gt;}。
     */
    private String key = "";

    /**
     * 查询地区：LocationID 或 {@code 经度,纬度}，见 GeoAPI / 控制台城市列表。
     */
    private String location = "101101100";

    /**
     * 副文案末尾展示地名（运营可读），如「杏花村片区」。
     */
    private String locationLabel = "杏花村片区";

    /**
     * 多语言参数 {@code lang}，默认中文。
     */
    private String lang = "zh";

    /**
     * 单位：{@code m} 公制（默认），{@code i} 英制。
     */
    private String unit = "m";

    /**
     * HTTP 调用超时（秒）。
     */
    private int httpTimeoutSeconds = 4;
}
