package com.aegis.emergency.alert.constant;

import org.apache.commons.lang3.StringUtils;
import lombok.Getter;

/**
 * 警情初判等级枚举
 * 
 * @author aegis
 */
@Getter
public enum AlertInitialLevel {
    
    /** 一级 */
    LEVEL1("level1", "一级"),
    
    /** 二级 */
    LEVEL2("level2", "二级"),
    
    /** 三级 */
    LEVEL3("level3", "三级"),
    
    /** 四级 */
    LEVEL4("level4", "四级");
    
    private final String code;
    private final String label;
    
    AlertInitialLevel(String code, String label) {
        this.code = code;
        this.label = label;
    }
    
    /**
     * 根据代码获取枚举
     * 
     * @param code 代码
     * @return 枚举值，如果找不到则返回 null
     */
    public static AlertInitialLevel fromCode(String code) {
        if (StringUtils.isBlank(code)) {
            return null;
        }
        for (AlertInitialLevel level : values()) {
            if (level.code.equals(code)) {
                return level;
            }
        }
        return null;
    }
    
    /**
     * 根据标签获取枚举（用于导入功能）
     * 
     * @param label 标签
     * @return 枚举值，如果找不到则返回 null
     */
    public static AlertInitialLevel fromLabel(String label) {
        if (StringUtils.isBlank(label)) {
            return null;
        }
        for (AlertInitialLevel level : values()) {
            if (level.label.equals(label)) {
                return level;
            }
        }
        return null;
    }
    
    /**
     * 判断是否为高等级（一级、二级）
     * 
     * @return 是否为高等级
     */
    public boolean isHighLevel() {
        return this == LEVEL1 || this == LEVEL2;
    }
}