package com.cpop.common.enums;

/**
 * @author LOST.yuan
 */
public enum ErrorCodeEnum {

    /** jwt凭据已过期 */
    HTTP_401(401, "权限不足"),

    NULL_TOKEN(402, "未登录！"),

    TOKEN_EXPIRED(403, "登录已失效！"),

    /**
     * 登录异常
     */
    LOGIN_EXCEPTION(2000, "登录异常！"),

    TOKEN_CREATE_ERROR(2001, "TOKEN生成失败！"),

    WRONG_LOGIN_PASSWORD(2002, "登录密码错误！"),

    WRONG_LOGIN_USERNAME(2003, "登录用户名错误！"),
    /**
     * 获取请求信息失败
     */
    GET_REQUEST_INFO_FAILED(2004, "获取请求信息失败！"),
    /**
     * 验证码错误
     */
    CAPTCHA_ERROR(2005,"验证码错误"),
    /**
     * 验证码失效FileSizeLimitExceeded
     */
    CAPTCHA_EXPIRE(2006,"验证码失效"),
    /**
     * 文件名称超长限制
     */
    FILE_NAME_TOO_LONG(2007,"文件名称超出限制,文件名长度为:"),
    /**
     * 文件名大小限制
     */
    FILE_SIZE_LIMIT_EXCEEDED(2008,"文件名大小超出限制,文件名大小为:"),

    //2500--内部服务异常
    /**
     * 操作日志异常
     */
    FILE_UPLOAD_EXCEPTION(2500,"文件上传异常"),
    /**
     * 操作日志异常
     */
    OPERATION_LOG_EXCEPTION(2501,"操作日志异常"),
    /**
     * 系统邮箱异常
     */
    SYS_EMAIL_EXCEPTION(2502,"系统邮箱异常"),
    ;

    private final Integer code;

    private final String info;

    ErrorCodeEnum(Integer code, String info) {
        this.code = code;
        this.info = info;
    }

    public Integer getCode() {
        return code;
    }

    public String getInfo() {
        return info;
    }

    public static ErrorCodeEnum codeOf(Integer code) {
        for (ErrorCodeEnum value : values()) {
            if (value.getCode().equals(code)) {
                return value;
            }
        }
        return null;
    }

}
