package thyyxxk.webserver.config.exception;


import lombok.Getter;

/**
 * @author dj
 */
@Getter
public enum ExceptionEnum implements ExceptionEnumInterface {
    /**
     * 成功
     */
    SUCCESS(200, "成功。"),
    /**
     * 提示成功
     */
    SUCCESS_AND_EL_MESSAGE(201, "操作成功"),
    SUCCESS_AND_ALERT(202, "操作成功"),
    SUCCESS_AND_EL_NOTIFICATION(203, "操作成功"),

    // 以下是需要消息提示的错误
    INTERNAL_SERVER_ERROR(1001, "服务器内部错误！"),
    NULL_POINTER(1002, "有不合法的空值存在！"),
    NETWORK_ERROR(1003, "网络异常！"),
    EXIST_NEGATIVE_FEES(1004, "此患者费用清单存在负数。"),
    EXIST_UNHANDLED_DRUG_ORDER(1104, "此患者有未处理的药单，请联系药房处理。"),
    EXIST_UNHANDLED_REFUND_DRUG(1105, "此患者有未处理的护士退药单。"),
    NO_DATA_EXIST(1005, "没有查询到符合条件的数据。"),
    ABNORMAL_YZ_ACT_ORDER(1006, "此患者存在异常状态医嘱。"),
    INVALID_PARAM(1007, "参数异常，请检查。"),
    NO_PERMISSION_TO_VIEW(1008, "无权查看。"),
    UNAUTHORIZED_OPERATION(1009, "无权操作。"),
    API_FUNC_ERROR(1010, "接口错误，请联系管理员。"),

    // 以下是需要弹窗提示的错误
    LOGICAL_ERROR(2001, "错误。"),
    NEED_PROOFREAD(2002, "错误。"),
    LOGICAL_HTML_ERROR(2003, "错误。"),

    // 以下是需要弹窗提示并且重定向到登录页面
    TOKEN_NOT_EXIST(3001, "没有找到令牌，请重新登录！"),
    TOKEN_ERROR(3001, "令牌错误，请重新登录！"),
    USER_NOT_EXIST(3002, "用户不存在，请重新登录！"),
    INVALID_PASSWORD(3003, "密码错误，请重新登录！"),
    LOCK_OUT_THE_USER(3003, "用户锁定！"),
    BAD_REQUEST(3004, "无法转换请求，请用正确的方式访问！"),
    TOKEN_EXPIRED(3005, "令牌已过期，请重新登录！"),
    TEST_ENVIRONMENT(3006, "测试环境已关闭请使用正式环境接口"),

    // 以下是不需要提示的错误
    SLIGHTLY_ERROR(4001, "无需提示的返回。"),
    PRE_DISCHARGE_ERROR(4002, "出院预审有可疑数据。"),
    SERVER_IS_UPDATE(5001, "服务器正在升级,请稍后在试一下。"),
    ERROR_MESSAGE(6001, "前端是返回成功的"),
    ERROR_MESSAGE_BOX(6002, "数据错误"),
    // 电子病历保存错误信息
    EMR_SAVE(7001, "保存失败"),
    EMR_EXTRACT_OBJECTS(7002, "提取数据元失败，但病历已保存。"),
    NOT_EL_MESSAGE(8001, "前端没提示的错误信息");

    private final Integer code;
    private final String message;

    ExceptionEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

}
