package templates;

import definitions.annotations.ErrorInterface;

@SuppressWarnings("unused")
public enum Errors implements ErrorInterface {
    /** 服务器内部错误，等同于500 */
    SERVER_INTERNAL_ERROR(-1),
    /** 参数不合法 */
    INVALID_PARAMETER(-2),
    /** 接口已失效，应校验是否是该版本接口已禁用，若已禁用客户端应触发升级提示 */
    API_DEPRECATED(-10),
    /** 等同于404 */
    API_NOT_FOUND(-11),
    /** 维护模式 */
    MAINTAIN_MODE(-20),
    /** 用户未登录 */
    AUTH_FAILED(-100),
    /** 自定义的ERROR信息 */
    CUSTOM_ERROR_MESSAGE(-10000),
    // 未授权
    UNAUTHORIZED(401),
    // 无权限
    FORBIDDEN(403),
    // 资源不存在
    NOT_FOUND(404),
    // 方法不存在
    METHOD_NOT_ALLOWED(405),
    // 资源冲突
    CONFLICT(409),
    // 资源永久不存在
    GONE(410),
    // 请求校验错误
    UNPROCESSABLE_ENTITY(422),
    // 限流
    TOO_MANY_REQUESTS(429),
    // 每日限流200张
    DAILY_FEED_LIMIT(202),
    // 登陆已过期,请重新登陆
    AUTH_EXPIRED(301),
    // 系统异常
    SYSTEM_ERROR(505),
    ;
    /**
     * 后边为控制部分，请勿编辑。
     */
    int value;

    Errors(int value) {
        this.value = value;
    }

    @Override
    public int getValue() {
        return value;
    }
}
