package com.gonghang.h5clientapp.exception;

/**
 * 异常状态编码
 * Created by shiwn on 2021/1/12 11:33
 */
public enum ErrorCode {
    SUCCESS(0, "成功"),

    SYSTEM_ERROR(500, "系统异常"),
    OPERATION_FAILED(1, "操作失败"),
    INSERT_ERROR(1, "数据插入失败"),
    UPDATE_ERROR(1, "数据更新失败"),
    DELETE_ERROR(1, "数据删除失败"),
    PARAMETER_IS_NULL(401, "参数为空"),
    PARAMETER_IS_ERROR(402, "参数错误"),
    DATA_NULL(1, "数据不存在"),
    UPLOAD_NULL(1, "上传文件不能为空"),
    EXCEL_ERROR(1, "Excel文件读取失败"),
    BAD_REQUEST(400, "请求参数不正确"),

    //  任务相关
    TASK_CREATE_ERROR(1, "任务创建失败"),
    TASK_NAME_DUPLICATE(1, "任务名称重复"),
    TASK_SENDED(1, "已下发任务不可修改或删除"),
    TASK_DATA_NULL(1, "任务执行数据不存在"),
    TASK_START_UPDATE_FAIL(1, "已执行任务不可修改"),

    //  巡检点相关
    CHECK_POINT_EXIST(1, "请先移除关联的巡检点"),
    CHECK_POINT_NULL(1, "巡检点不存在"),

    //  机器人相关
    ROBOT_NULL(1, "机器人不存在"),
    ROBOT_REBOOT_FAIL(1, "机器人重启失败!"),
    ROBOT_UPDATE_TIME_FAIL(1, "机器人同步时间失败!"),
    ROBOT_UPDATE_SETTING_FAIL(1, "更新机器人配置参数失败!"),
    ROBOT_NO_SETTING(1, "未查询到机器人设置参数!"),
    SEND_TASK_FAIL(1, "任务下发机器人失败"),
    ROBOT_NO_EXECUTE_TASK(1, "机器人无正在执行任务"),
    ROBOT_FOLLOWED(1, "请勿重复关注"),
    ROBOT_RETURN_NULL(1, "机器人无返回数据!"),

    //邮箱相关
    EMAIL_NOT_SET(1, "邮箱服务未开启"),

    EMAIL_SETTING_DATA_ERROR(1, "邮箱数据异常"),

    //短信相关
    SMS_SERVICE_ALREADY_OPEN(1, "短信服务已开启"),

    SMS_ALIYUN_DATA_NULL(1, "阿里云短信设置参数不得为空"),

    SMS_COM_DATA_NULL(1, "串口名称不得为空"),

    //告警订阅相关
    NOT_SET_MOBILE(1, "未设置手机号"),

    NOT_SET_MAIL(1, "未设置邮箱"),

    NOT_CHOOSE_CHECKPOINT(1, "未选择订阅的巡检点"),

    SUBSCRIBE_NOT_EXIST(1, "订阅信息不存在"),

    //    系统用户相关
    ACCOUNT_NOT_EXIST(1, "用户不存在"),

    ACCOUNT_NULL(1, "用户名不能为空"),

    ACCOUNT_DUPLICATE(1, "用户名重复"),

    MOBILE_DUPLICATE(1, "手机号重复"),

    LOGIN_ERROR(1, "用户名或密码错误"),

    LOGIN_FAIL(1, "登录失败"),

    LOGIN_INVALIDATION(1, "登录失效"),

    PASSWORD_ERROR(1, "密码错误"),

    PASSWORD_NULL(1, "请输入密码"),

    CONFIRM_PASSWORD_NULL(1, "请输入确认密码"),

    CONFIRM_PASSWORD_ERROR(1, "两次密码输入不一致"),

    //部门相关
    DEPARTMENT_CODE_DUPLICATE(1, "部门编码重复"),

    DEPARTMENT_EXIST_USER(1, "部门下存在用户"),

    DEPARTMENT_EXIST_CHILDREN(1, "部门下存在下级"),

    //权限相关
    USER_PERMISSION_NOT_EXIST(1, "无用户权限"),

    // 角色相关
    ROLE_NOT_EXIST(1, "角色不存在"),

    ROLE_NAME_DUPLICATE(1, "角色名称重复"),

    ROLE_EXIST_USER(1, "角色下存在用户,不可直接删除!"),

    //  redis相关
    REDIS_UPDATE_FAIL(1, "redis缓存更新失败"),
    // 文件上传有关
    SIZE_TOO_LARGE(1, "上传文件超限"),

    //导入导出相关
    IMPORT_FAIL(1, "导入失败"),

    IMPORT_DATA_NULL(1, "导入数据为空"),

    IMPORT_DATA_ERROR(1, "导入数据缺少字段值!"),

    LACK_FIELD(1, "导入excel缺少字段"),

    EXPORT_DATA_NULL(1, "导出数据为空"),


    //API通用状态码
    KEYID_ERROR(202, "无效key"),

    SNS_ERROR(202, "无效SNS"),

    ACCOUNT_PWD_ERROR(204, "用户名或密码错误"),

    GH_DATA_NULL(205, "返回结果为空"),

    PARAMETER_ERROR(402, "参数错误"),

    DATA_TOO_LARGE(1, "查询数据量太大,请缩小查询范围"),

    SERVER_ID_ERROR(403, "无权限访问");


    private int code;
    private String msg;

    ErrorCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }
}
