package org.dromara.manager.weathermanager;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author lcj
 * @date 2025/5/12 17:57
 */
public interface WeatherConstant {

    /**
     * 城市三天的天气
     */
    String THREE_DAYS_WEATHER_PATH = "/v7/weather/3d";

    /**
     * 天气信息
     */
    String DAILY = "daily";

    /**
     * 日期
     */
    String FX_DATE = "fxDate";

    /**
     * 最高温度
     */
    String TEMP_MAX = "tempMax";

    /**
     * 最低温度
     */
    String TEMP_MIN = "tempMin";

    /**
     * 日出时间
     */
    String SUN_RISE = "sunrise";

    /**
     * 日落时间
     */
    String SUN_SET = "sunset";

    /**
     * 白天天气状态
     */
    String TEXT_DAY = "textDay";

    /**
     * 晚上天气状态
     */
    String TEXT_NIGHT = "textNight";

    // region 天气情况

    /**
     * 晴
     */
    List<String> SUNNY = List.of("晴");

    /**
     * 多云
     */
    List<String> MANY_CLOUD = List.of("多云", "少云", "晴间多云");

    /**
     * 阴
     */
    List<String> CLOUDY = List.of("阴", "阴天");

    /**
     * 小雨
     */
    List<String> SMALL_RAIN = List.of("小雨", "毛毛雨", "细雨", "毛毛雨/细雨", "小到中雨");

    /**
     * 大雨
     */
    List<String> BIG_RAIN = List.of("阵雨", "强阵雨", "中雨", "大雨", "极端降雨", "暴雨", "大暴雨", "特大暴雨", "中到大雨", "大到暴雨", "暴雨到大暴雨", "大暴雨到特大暴雨");

    /**
     * 小雪
     */
    List<String> SMALL_SNOW = List.of("雪", "小雪", "中雪", "小到中雪");

    /**
     * 大雪
     */
    List<String> BIG_SNOW = List.of("大雪", "暴雪", "阵雪", "中到大雪", "大到暴雪", "阵雨夹雪");

    /**
     * 雷雨
     */
    List<String> THUNDERSTORM = List.of("雷阵雨", "强雷阵雨", "雷阵雨伴有冰雹");

    /**
     * 雨雪
     */
    List<String> RAIN_SNOW = List.of("冻雨", "雨夹雪", "雨雪天气", "阵雨夹雪");

    /**
     * 霾
     */
    List<String> HAZE = List.of("霾", "雾霾", "中度霾", "重度霾", "严重霾");

    /**
     * 雾
     */
    List<String> FOG = List.of("薄雾", "雾", "浓雾", "强浓雾", "大雾", "特强浓雾");

    /**
     * 沙尘
     */
    List<String> SANDSTORM = List.of("扬沙", "浮尘", "沙尘暴", "强沙尘暴");

    /**
     * 获取天气情况map
     *
     * @return 天气情况map
     */
    static Map<String, List<String>> getWeatherStatusMap() {
        Map<String, List<String>> weatherStatusMap = new HashMap<>();
        weatherStatusMap.put("sunny", SUNNY);
        weatherStatusMap.put("manyCloud", MANY_CLOUD);
        weatherStatusMap.put("cloudy", CLOUDY);
        weatherStatusMap.put("smallRain", SMALL_RAIN);
        weatherStatusMap.put("bigRain", BIG_RAIN);
        weatherStatusMap.put("smallSnow", SMALL_SNOW);
        weatherStatusMap.put("bigSnow", BIG_SNOW);
        weatherStatusMap.put("thunderstorm", THUNDERSTORM);
        weatherStatusMap.put("rainSnow", RAIN_SNOW);
        weatherStatusMap.put("haze", HAZE);
        weatherStatusMap.put("fog", FOG);
        weatherStatusMap.put("sandstorm", SANDSTORM);
        return weatherStatusMap;
    }

    // endregion

}
