package net.northking.cctp.dataPool.enums;

import net.northking.cctp.common.exception.PlatformError;

/**
 * 自定义异常信息
 */
public enum DataPoolError implements PlatformError {
    //目录树管理
    TREE_NAME_VALID("目录名称不可包含【/】或者【\\】"),
    TREE_NO_EXISTS("当前目录不存在，请刷新列表"),
    TREE_NAME_EXISTS("当前目录名称已存在"),
    TREE_ADD_DATA_EXISTS("所选父目录存在数据，不可新建目录"),
    TREE_DEL_DIR_EXISTS("该目录下有子目录，不允许删除！"),
    TREE_DEL_DATA_EXISTS("该目录下存在数据，不允许删除！"),
    TREE_LEVEL_LIMIT("超过树节点层级上限10级"),
    TREE_MOVE_DATA_EXISTS("目标目录存在数据，不可拖拽"),
    //数据集管理
    SET_NAME_NO_UNIQUE("数据集名称[{0}]在该目录下已存在"),
    SET_NAME_IS_VALID("数据集名称不可包含特殊符号"),
    SETS_DIR_VALID("所选目录不合法，请选择存在的叶子节点"),
    SETS_NO_EXISTS("当前数据集不存在，请刷新列表"),
    SETS_DATA_IS_NULL("数据集文件内容为空"),
    COLUMN_IS_NULL("列信息为空"),
    COLUMN_NAME_IS_NULL("列名不能为空"),
    COLUMN_NAME_IS_TOO_LONG("列名长度不可超过30"),
    COLUMN_TYPE_IS_NULL("列类型不能为空"),
    COLUMN_TYPE_IS_WRONG("列类型错误！"),
    COLUMN_IS_EXSITS("同名列已存在"),
    HEADER_CONTENT_NO_MATCH("表头与数据不匹配"),
    IMPORT_FILE_IS_NULL("导入文件为空"),
    IMPORT_EXCEL_FILE_IS_TOO_LARGE("导入文件大小不可超过2M"),
    IMPORT_FILE_FORMART_IS_ERROR("导入文件格式不正确"),
    IMPORT_EXCEL_CELL_IS_NULL("导入文件表头列数据不能为空"),
    IMPORT_COLUMN_IS_EXSITS("导入文件表头列名不能重复"),
    IMPORT_COLUMN_IS_TOO_LONG("导入文件表头列名长度不能超过30"),
    IMPORT_COLUMN_IS_INVALID("导入失败:当前excel为无效文件！！！"),
    PROJECT_NO_REFER_ENV("新增数据失败:当前系统未关联环境！！！"),
    //模糊数据管理
    DATA_RESOURCE_PACKAGE_UPLOAD_FAIL("资源包上传失败"),
    DATA_RESOURCE_PACKAGE_IS_NULL("当前资源包不存在，请刷新列表"),
    DATA_RULE_IS_NULL("所选规则不存在，请刷新列表"),
    DATA_RULE_NAME_IS_EXSIT("同名数据规则已存在"),
    DATA_RULE_EXP_IS_NULL("数据规则内容不能为空"),
    DATA_RULE_REXP_IS_VALID("正则表达式语法错误，请重新检查"),
    DATA_RULE_NOT_SUPPORT_TYPE("数据规则脚本暂不支持所选类型"),
    DATA_RESOURCE_PACKAGE_LOAD_FAIL("数据规则资源包加载失败"),
    DATA_RULE_EXECUTE_RESULT_IS_NULL("规则测试结果为null，请检查语法"),
    DATA_RULE_EXECUTE_RESULT_IS_EXCEPTION("规则测试执行异常，请检查语法"),
    PARAM_IS_MISSING("缺少请求参数"),
    DATA_SET_HAS_LINK("当前静态数据集存在关联，删除失败！"),
    FUZZY_DATA_SET_HAS_LINK("当前模糊数据存在关联，删除失败！"),

    //文件IO管理
    FILE_IS_NULL("文件不能为空！"),
    FILE_UPLOAD_ERROR("文件上传失败"),
    FILE_DOWNLOAD_ERROR("文件下载失败"),
    FILE_READ_ERROR("读取文件内容失败"),
    FILE_DEL_ERROR("文件删除失败"),
    FILE_ID_ERROR("文件id有误"),
    FILE_IS_NOT_EXCEL("导入异常，当前文件非正常格式的Excel文件！"),
    FILE_NAME_IS_NULL("导入异常，文件名称不能为空！"),

    //excel
    EXCEL_HEADER_IS_NULL("导入文件的第1列数据存在空值，请修改文件再导入！"),
    EXCEL_FILE_READ_ERROR("导入失败:当前Excel为无效文件！"),
    EXCEL_FISRT_SHEET_NULL("Excel文件中首个工作表为空！"),
    EXCEL_NAME_IS_NULL("Excel文件名称为空，导入失败！"),
    TABLE_HEADER_NAME_ERROR("导入文件中的表头字段第{0}列名称【{1}】跟前端界面字段【{2}】不一致!"),
    TABLE_HEADER_SIZE_UNEQULE("导入文件中的表头字段数跟前端界面显示的不一致！"),
    EXCEL_HEADER_HAS_SAME("表头存在重复数据，请修改Excel文件！"),

    //日志管理
    INSERT_LOG_FAIL("日志创建失败");
    private final Integer code;
    private final String msg;

    private static final int START_CODE = 220000;

    DataPoolError(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    DataPoolError(String msg) {
        this.code = ordinal() + START_CODE;
        this.msg = msg;
    }

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

    @Override
    public String getMsg() {
        return msg;
    }
}
