package com.sundot.airport.common.enums.portrait;

/**
 * 用户类型枚举
 * 定义了系统中的用户类型，包括个人和各种组织层级
 */
public enum UserType {
    /**
     * 个人用户
     */
    PERSONAL("个人"),

    /**
     * 班组级别
     */
    TEAM("班组"),

    /**
     * 科级单位
     */
    DEPARTMENT("科级"),

    /**
     * 大队单位
     */
    BRIGADE("大队"),

    /**
     * 站级单位
     */
    STATION("站级");

    /**
     * 类型描述
     */
    private final String description;

    /**
     * 构造函数
     *
     * @param description 类型描述
     */
    UserType(String description) {
        this.description = description;
    }

    /**
     * 获取类型描述
     *
     * @return 类型描述
     */
    public String getDescription() {
        return description;
    }

    /**
     * 根据字符串获取枚举值
     *
     * @param userType 用户类型字符串
     * @return 对应的枚举值
     */
    public static UserType fromString(String userType) {
        switch (userType.toLowerCase()) {
            case "personal":
                return PERSONAL;
            case "team":
                return TEAM;
            case "department":
                return DEPARTMENT;
            case "brigade":
                return BRIGADE;
            case "station":
                return STATION;
            default:
                throw new IllegalArgumentException("未知的用户类型: " + userType);
        }
    }
}