package com.sundot.airport.exam.common;

public enum BizExceptionEnum implements AbstractBaseExceptionEnum {

    /**
     * 权限和数据问题
     */
    CANT_DB_RESOURCE_NULL(400, "数据库中没有该资源"),
    /**
     * 权限异常
     */
    CANT_NO_PERMITION(405, "权限异常"),
    /**
     * 请求数据格式不正确
     */
    CANT_REQUEST_INVALIDATE(400, "请求数据格式不正确"),

    /**
     * 验证码不正确
     */
    CANT_INVALID_KAPTCHA(400, "验证码不正确"),
    /**
     * 不能删除超级管理员
     */
    CANT_DELETE_ADMIN(600, "不能删除超级管理员"),
    /**
     * 不能修改超级管理员角色
     */
    CANT_CHANGE_ADMIN(600, "不能修改超级管理员角色"),

    /**
     * 用户没有分配角色，获取菜单失败
     */
    CANT_NO_ROLE(1405, "用户没有分配角色，获取菜单失败"),


    /**
     * 操作问题
     */
    OPERATION_INSERT_ERROR(500, "新增操作失败！"),
    /**
     * 修改操作失败
     */
    OPERATION_UPDATE_ERROR(500, "修改操作失败！"),

    /**
     * 删除操作失败
     */
    OPERATION_DELETE_ERROR(500, "删除操作失败！"),
    /**
     * 启用操作失败
     */
    OPERATION_ENABLE_ERROR(500, "启用操作失败！"),

    /**
     * 禁用操作失败
     */
    OPERATION_DISABLE_ERROR(500, "禁用操作失败！"),
    /**
     * 文件上传失败
     */
    OPERATION_FILE_UPLOAD_ERROR(500, "文件上传失败！"),

    /**
     * 图片上传失败
     */
    OPERATION_IMG_UPLOAD_ERROR(500, "图片上传失败！"),
    /**
     * 目录写入失败
     */
    OPERATION_DIRECTORY_WRITER_ERROR(500, "目录写入失败！"),

    /**
     * 文件写入失败
     */
    OPERATION_FILE_WRITER_ERROR(500, "文件写入失败！"),
    /**
     * 短信发送失败
     */
    OPERATION_SEND_MESSAGE_ERROR(500, "短信发送失败！"),

    /**
     * 短信发送太过频繁请60秒后重试
     */
    OPERATION_SEND_MESSAGE_TOO_OFTEN_ERROR(500, "短信发送太过频繁请60秒后重试！"),


    /**
     * 请求的问题
     */
    REQUEST_NULL(400, "请求有错误"),
    /**
     * 会话超时
     */
    REQUEST_SESSION_TIMEOUT(400, "会话超时"),
    /**
     * 服务器异常
     */
    REQUEST_SERVER_ERROR(500, "服务器异常"),


    /**
     * Token的问题
     */
    TOKEN_EXPIRED(700, "登录已失效"),
    /**
     * token验证失败
     */
    TOKEN_ERROR(700, "token验证失败"),
    /**
     * 导出异常请重试
     */
    EXPORT_DATA_NULL(500, "导出异常请重试"),

    /**
     * 登录二维码已过期请重新获取
     */
    LOGIN_QR_CODE_EXPIRED(701,"登录二维码已过期请重新获取"),

    ;




    private final Integer code;
    private final String message;

    BizExceptionEnum(int code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public Integer getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }

}