package backend.model.enums;

/**
 * 登录状态枚举类
 * 定义了系统中所有可能的登录相关状态码和对应的消息描述
 */
public enum LoginStatus {
    SUCCESS(490,"登录成功"),
    USER_NOT_FOUND(491,"用户不存在"),
    PASSWORD_ERROR(492,"密码错误"),
    ALREADY_LOGGED_IN(493,"重复登录"),
    CAPTCHA_ERROR(494,"验证码错误"),
    ACCOUNT_LOCKED(495,"账户被封禁"),
    PERMISSION_DENIED(496,"权限不足"),
    LOGOUT_SUCCESS(497,"登出成功"),
    NOT_LOGGED_IN(498,"未登录"),
    UNKNOWN_ERROR(499,"未知错误"),
    REGISTER_FAILD(500,"注册失败");


    private final int code;
    private final String msg;

    /**
     * 构造函数，初始化状态码和消息
     * @param code 状态码
     * @param msg 状态消息
     */
    LoginStatus(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    /**
     * 根据状态码获取对应的登录状态枚举值
     * @param code 状态码
     * @return 对应的LoginStatus枚举值，如果未找到则返回null
     */
    public static LoginStatus getByCode(int code){
        // 遍历所有枚举值查找匹配的状态码
        for(LoginStatus status:values()){
            if(status.code==code){
                return status;
            }
        }
        return null;
    }

    /**
     * 获取状态码
     * @return 状态码
     */
    public int getCode() {
        return code;
    }

    /**
     * 获取状态消息
     * @return 状态消息
     */
    public String getMsg() {
        return msg;
    }

}

