package com.changhu.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * author: luozhun
 * desc: ResultCode
 * createTime: 2023/8/16 17:30
 */
@Getter
@AllArgsConstructor
public enum ResultCode {
    /**
     * 常见状态码
     */
    SUCCESS(200, "操作成功！"),
    ERROR(500, "操作失败！"),
    WARN(555, "出现警告！"),

    /**
     * 权限相关 -1错误需要重新返回登录页面 进行认证
     */
    NOT_TOKEN(-1, "未能读取到有效 token"),
    INVALID_TOKEN(-1, "token 无效"),
    TOKEN_TIMEOUT(-1, "token 已过期"),
    BE_REPLACED(-1, "token 已被顶下线"),
    KICK_OUT(-1, "token 已被踢下线"),
    TOKEN_FREEZE(-1, "token 已被冻结"),
    NO_PREFIX(-1, "未按照指定前缀提交 token"),
    OTHER_TOKEN_ERROR(-1, "当前会话未登录"),


    /**
     * 加密解密
     */
    DECRYPT_ERROR(301, "解码失败"),
    ENCIPHER_ERROR(302, "编码失败"),

    /**
     * 系统相关
     */
    USER_NOT_FOUND(402, "用户不存在"),
    PASSWORD_ERROR(403, "密码错误"),
    NOT_FOUND_404(404, "找不到资源"),
    USER_IS_DISABLE(405, "用户已禁用"),
    ROLE_IS_DISABLE(405, "角色已禁用"),
    CODE_ERROR(406, "验证码错误"),
    DATA_NOT_FOUND(407, "数据不存在"),


    /**
     * 参数校验
     */
    PARAM_ERROR(502, "参数错误"),
    REQUIRED_PARAM_MISSING(503, "未找到必填参数"),

    ;

    private final Integer code;
    private final String message;
}
