package net.northking.cctp.executePlan.exception;

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


/**
 * <p>Title: ExecPlanError</p>
 * <p>Description: </p>
 *
 * @Author chenjianfeng
 * @Version V1.0
 * @Date 2022/12/08
 * <p>Copyright (c) 京北方信息技术股份有限公司 Corporation 2022 . All rights reserved.</p>
 */

public enum ExecPlanError implements PlatformError {
    /**
     * 错误码起始值
     */
    FIRST(220000, "First"),

    PLAN_NAME_ERROR("系统下的计划名称不能重复"),
    PLAN_NAME_TOO_LONG("计划名称超过30位，请修改计划名称！"),
    PLAN_IS_NULL("计划信息不存在"),
    PLAN_CASE_SET_IS_NULL("计划用例集信息不存在"),
    PLAN_IS_UN_ENABLE("计划被禁用，执行失败！"),
    PLAN_CASE_IS_NULL("计划用例信息不存在"),
    PLAN_DEVICE_IS_NULL("计划绑定的设备信息不存在"),
    PLAN_STATUS_CANNOT_DELETE("当前状态下的执行计划不允许删除"),
    PLAN_UPDATE_APP_ERROR("请重新确认应用包信息:{0}"),
    PLAN_UPDATE_DEVICE_ERROR("请选择{0}设备"),
    PLAN_PC_DEVICE_IS_NULL("当前用例集中存在PC设备的用例，请选择PC设备"),
    PLAN_DELETE_LOG_ERROR("删除计划发送日志"),
    PLAN_CORN_ERROR("计划中的corn表达式格式错误，请修改"),
    PLAN_CORN_TIME_TOO_LESS("计划中的corn表达式存在执行间隔1s的情况"),
    PLAN_EMAIL_ERROR("计划中的邮箱地址格式错误，请修改"),
    PLAN_UPFRONT_NULL("计划中的前置计划为空，请选择前置计划！"),
    PLAN_UPFRONT_IS_DELETE("{0}的前置计划已经被删除，请重新选择前置计划！"),
    PLAN_WEBHOOK_TOKEN_ERROR("当前token无效，执行计划失败！"),
    PLAN_APP_IS_NULL_ERROR("当前计划存在移动端用例，请选择{0}应用"),
    PLAN_CASE_NUMBER_ZERO("当前计划的用例为空，请选择用例"),
    PLAN_UPDATE_ERROR("编辑计划异常:{0}"),
    PLAN_NAME_OVERLONG("克隆【{0}】计划后的名称超长，克隆失败！"),
    PLAN_EXECUTE_FAIL("计划执行失败:{0}"),
    PLAN_ENTRUST_FAIL("委托失败"),
    PLAN_ENV_IS_NULL("计划绑定的环境信息不存在，请检查"),
    PLAN_SCRIPT_IS_NULL("计划勾选的脚本为空"),
    PLAN_APP_LIST_IS_NULL("计划关联的应用为空，请选择应用！"),
    PLAN_DEVICE_LIST_IS_NULL("计划关联的设备为空，请选择设备！"),
    PLAN_SCRIPT_LINK_IS_NULL("计划缺少关联的用例集，请选择用例集！"),

    BATCH_INFO_IS_NULL("批次信息不存在"),
    QUERY_SCRIPT_INPUT_IS_NULL("执行所需要的脚本输入项异常，请检查"),
    QUERY_SCRIPT_INFO_IS_NULL("所查询的脚本信息不存在"),
    CASE_APP_INFO_IS_NULL("用例的应用信息不存在"),
    SCENE_NODE_EXEC_INFO_IS_NULL("场景节点执行信息不存在"),
    SCENE_NEXT_NODE_INFO_IS_NULL("场景下一节点信息不存在"),
    SCENE_FIRST_NODE_INFO_IS_NULL("场景首节点信息不存在"),
    SCENE_NODE_INFO_ERROR("当前场景用例执行任务为接口类型，暂无直播与视频"),
    TASK_INFO_IS_NULL("任务信息不存在"),
    QUERY_SCRIPT_INFO_ERROR("查询任务脚本信息异常"),
    PARAMS_IS_NOT_NULL("必填参数不能为空"),
    SCENE_TASK_ID_IS_NOT_NULL("场景任务编号不能为空"),
    QUERY_ENGINE_INFO_ERROR("获取引擎信息异常"),
    QUERY_DEVICE_OFFLINE_INFO("获取设备离线信息异常"),
    CREATE_CASE_DATA_ERROR("生成用例数据失败"),
    DOWNLOAD_SCRIPT_FAIL("读取原脚本文件失败"),
    CASE_APP_ID_IS_NULL("该平台绑定的应用编号信息为空"),
    TASK_NOT_FINISH("任务还未完成"),
    BATCH_NOT_FINISH("计划批次还未完成"),
    INIT_TASK_INFO_FAIL("初始化任务信息失败"),
    UPDATE_BATCH_INFO_FAIL("更新计划批次信息失败"),
    CLEAR_SCENE_NODE_TASK_FAIL("清理场景节点任务信息失败"),
    GET_SCENE_FIRST_NODE_FAIL("获取场景首节点信息失败"),
    SCENE_FIRST_NODE_TASK_IS_NULL("场景首节点任务不存在"),
    SCRIPT_INPUT_DATA_IS_NULL("脚本输入项数据不存在"),
    EXECPLAN_ID_IS_NULL("执行计划Id为空"),
    EXECPLAN_ID_IS_DELETE("执行计划{0}已被删除"),
    DELETE_EXECPLANTAG_ERROR("执行计划标签删除参数为空"),
    QUERY_MOBILE_DEVICE_TYPE_IS_NULL("移动设备分类信息获取异常"),
    QUERY_SCRIPT_INPUT_ERROR("读取环境[{0}]脚本[{1}]输入项文件失败, {2}"),
    SCRIPT_INPUT_NOT_DATA("存在没数据的输入项文件"),
    SCRIPT_INPUT_DELETED("存在用例被删除任务，不可重试"),
    SCRIPT_INPUT_UNSELECTED("存在任务对应输入项数据被排除"),

    PARSE_DATE_ERROR("格式化日期出错，请检查参数"),

    GET_FILE_FAIL("获取文件失败"),

    /**
     * 错误码结束值
     */
    LAST(229999, "Last");
    private static final int START_CODE = 220000;

    private final Integer code;
    private final String msg;

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

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

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

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