package cn.com.ctop.common.module.utils;

/**
 * @author jeecg-boot
 * 2019年12月5日19:57:58
 */
public enum StatusCode {
    /**
     * 0   请求成功
     * -101 参数异常
     * -102 服务器异常
     * -103 数据不存在
     * -104 渠道不存在
     * -105 规则尚未配置
     * -106 规则为空
     * -107 同盾数据为空
     * -108 模型服务异常
     * -109 深度搜索服务异常
     * -201 探针数据为空
     */
    COMMON_SUCCESS("操作成功", 0, true),
    COMMON_PARAM_ERROR("参数异常", -1, false),
    COMMON_ACCOUNT_ERROR("参数异常", -2, false),
    COMMON_INTERNET_ERROR("网络请求异常", -3, false),
    COMMON_DATA_NOT_EXIST("数据不存在或者已经被删除", -101, false),
    BYTEDANCE_PLAN_DATA_NOT_EXIST("此计划不存在或者已经被删除", -101, false),
    BYTEDANCE_ACCOUNT_DATA_NOT_EXIST("此账户尚未绑定或已停投", -101, false),
    COMMON_VERSION_NOT_EXIST("版本号不存在", -102, false),
    BYTEDANCE_VIDEO_UPLOAD_FAIL("今日头条视频文件上传失败", -201, false),
    MATERIAL_UPLOAD_FAIL("素材文件上传失败", -201, false),
    IMAGE_NUMBER_SHORTAGE("今日头条图片文件上传失败", -202, false),
    BYTEDANCE_IMAGE_UPLOAD_FAIL("今日头条图片文件上传失败", -203, false),
    TEMPLATE_NAME_HAS_EXIST("模板名称已存在", -204, false),
    TEMPLATE_NAME_IS_NULL("模板名称为空", -205, false),
    FILE_HAS_NOT_UPLOAD("文件尚未上传", -206, false),
    ACCOUNT_HAS_NOT_EXIST("该用户信息不存在", -207, false),
    USERNAME_OR_PASSWORD_ERROR("登录用户名或密码错误", -208, false),
    ACCOUNT_HAS_NO_AUTHORIZE("该用户尚未进行授权", -209, false),
    FILE_HAS_UPLOAD("文件已经上传过", 0, false),
    COMMON_SERVER_ERROR("服务器内部错误", -102, false),
    CTOP_HAS_NO_PERFORMANCE_STATISTIC_LOGIC("绩效统计逻辑尚未确定", -103, false),
    CTOP_SCRIPT_FILE_NOT_EXIST("脚本文件不存在", -104, false),
    CTOP_PROJECT_NOT_EXIST("项目不存在", -105, false),
    CTOP_FEISHU_EMAIL_NOT_EXIST("飞书账户未绑定邮箱", -106, false),
    CTOP_FEISHU_ACCOUNT_NOT_EXIST("该用户未注册系统账户，请联系管理员", -107, false),

    KUAISHOU_CRAWLER_APP_EXIT("快手app异常退出", -1001, false),
    KUAISHOU_CRAWLER_APP_ELEMENT_ERROR("快手元素异常", -1002, false),
    KUAISHOU_CRAWLER_APP_ELEMENT_IS_NULL("此快手元素获取不到", -1003, false),
    KUAISHOU_CRAWLER_APP_MOBILE_CODE_IS_NULL("短信验证码未获取到", -1004, false),
    KUAISHOU_CRAWLER_APP_ELEMENT_DETAIL_ERROR("快手元素内容异常", -1005, false),
    KUAISHOU_CRAWLER_APP_NO_ENABLED_DEVICE("暂无可用设备", -2001, false),
    KUAISHOU_OPTINIZER_CONFIG_IS_NULL("快手媒体优化师配置信息不全", -3001, false),
    KUAISHOU_OPTINIZER_PERSONNAL_DATA_IS_NULL("快手媒体优化师个人消耗数据不存在", -3002, false),
    BYTEDANCE_OPTINIZER_PERSONNAL_DATA_IS_NULL("头条媒体优化师个人消耗数据不存在", -3003, false),
    OPTINIZER_PERSONNAL_DATA_IS_NULL("优化师个人消耗数据不存在", -3004, false),

    BYTEDACNE_API_GROUP_CREATE_ERROR("头条API创建广告组异常",-4001,false),

    KUAISHOU_API_ACCOUNT_SPEED_EXPLORING("此账户加速探索尚未完成",-5001,false),
    KUAISHOU_SPEED_EXPLORE_ACTION_TYPE_NOT_CONFIG("加速探索尚不支持此类优化目标",-5002,false),
    KUAISHOU_SPEED_EXPLORE_FAIL("加速探索失败",-5003,false),

    KUAISHOU_AI_STRATEGY_HAS_NOT_EXIST("账户策略未配置或者已经被关闭",-6001,false),
    KUAISHOU_AI_STRATEGY_HAS_NO_HISTORY_MATERIAL("历史素材不存在",-6002,false),

    KUAISHOU_CRAWLER_APP_SUCCESS("爬虫运行正常", 0, true),
    KUAISHOU_CRAWLER_APP_TASK_END("爬虫任务运行结束", 1, true),
    KUAISHOU_CRAWLER_APP_JOB_StART("任务开始执行开始", 0, true),
    KUAISHOU_CRAWLER_APP_JOB_END("任务运行结束", 1, true),
    MODEL_VIDEO_NOT_EXIST("模板视频不存在或者已经被删除", 0, false);
    private String desc;
    private int code;
    private boolean flag;

    StatusCode(String desc, int code, boolean flag) {
        this.desc = desc;
        this.code = code;
        this.flag = flag;
    }

    public static String getDesc(int code) {
        for (StatusCode error : StatusCode.values()) {
            if (error.getCode() == code) {
                return error.getDesc();
            }
        }
        return null;
    }

    public static Boolean getFlag(int code) {
        for (StatusCode error : StatusCode.values()) {
            if (error.getCode() == code) {
                return error.getFlag();
            }
        }
        return null;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public boolean getFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

}
