package com.storlead.framework.web.message;

import com.storlead.framework.web.exception.MsgCodeSupport;

public enum TopMsgCode implements MsgCode{
    /** 协议级返回码 */
    ERROR(-1, "操作失败"), //
    UPGRADE(100, "您当前版本需要升级"), //
    UPGRADE_DATA(101, "需更新配置或数据"), //
    SUCCESS(200, "操作成功"), //
    REDIRECT(300, "重定向"), //
    LOGIN_FAIL(401, "登陆鉴权失败"), //
    FORBIDDEN(403, "权限不足"), //
    ERP_SERVICE_ERROR(700, "路由"), //
    OPTIONS_CODE(9999, "预处理"), //

    /** 系统级错误码 */
    SYSTEM_ERROR(1001, "系统错误"), //
    SERVICE_PAUSE(1002, "服务暂停"), //
    SERVICE_BUSY(1003, "服务器忙"), //
    NOT_FOUND(1004, "接口不存在"), //

    /** 业务级错误码 */
    WEB_ERROR(110000, "服务端web异常"), //
    FORM_VALIDATE_ERROR(110100, "输入参数有误"), //
    USER_ABSENT(110101, "缺少用户信息"), //
    SERVICE_ERROR(120000, "服务端service异常"), //
    DAO_ERROR(130000, "服务端dao异常"), //
    DB_ERROR(191000, "数据库访问异常"), //
    IO_ERROR(192000, "IO操作异常"), //
    CACHE_ERROR(193000, "cache操作异常"), //
    LOCAL_INVOKE_ERROR(194000, "Local api调用错误"), //
    RPC_INVOKE_ERROR(195000, "RPC调用错误"), //
    SECURITY_ERROR(196000, "安全错误"), //

    /** 其它错误码 */
    OTHER_ERROR(900000, "其它错误"); //

    private final MsgCodeSupport support;

    TopMsgCode(int code, String message) {
        support = new MsgCodeSupport(code, message);
    }

    @Override
    public int code() {

        return support.code();
    }

    @Override
    public String message() {
        return support.message();
    }
}
