package com.multictrl.common.utils.weather;

/**
 * 雾量工具类
 *
 * @author Sdy
 * @since 1.0.0 2025/10/13
 */
public class FogUtils {
    // 轻雾类天气现象
    public static final String[] LIGHT_FOG_TYPES = {
            "轻雾"
    };

    // 中雾类天气现象
    public static final String[] MODERATE_FOG_TYPES = {
            "雾",
            "浓雾"
    };

    // 大雾类天气现象
    public static final String[] HEAVY_FOG_TYPES = {
            "强浓雾",
            "大雾",
            "特强浓雾"
    };

    /**
     * 判断是否为轻雾类
     */
    public static boolean isMinFog(String fogType) {
        return contains(LIGHT_FOG_TYPES, fogType);
    }

    /**
     * 判断是否为中雾类
     */
    public static boolean isModerateFog(String fogType) {
        return contains(MODERATE_FOG_TYPES, fogType);
    }

    /**
     * 判断是否为大雾类
     */
    public static boolean isMaxFog(String fogType) {
        return contains(HEAVY_FOG_TYPES, fogType);
    }

    /**
     * 获取雾类型所属的类别名称
     */
    public static String getCategory(String fogType) {
        if (isMinFog(fogType)) return "轻雾";
        if (isModerateFog(fogType)) return "中雾";
        if (isMaxFog(fogType)) return "大雾";
        return "未知";
    }

    /**
     * 检查字符串是否在数组中
     */
    private static boolean contains(String[] array, String value) {
        for (String item : array) {
            if (item.equals(value)) {
                return true;
            }
        }
        return false;
    }
}
