package com.tuoheng.miniprogram.exception;

import com.tuoheng.common.core.exception.ExceptionInterface;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.experimental.Accessors;

/**
 * 公共异常枚举
 *
 * @author zhu_zishuang
 * @date 2020-09-17
 */
@Accessors(chain = true)
@AllArgsConstructor
public enum ExceptionConstantEnum implements ExceptionInterface {

    /**
     * 存在错误参数
     */
    SYSTEM_INNER_EXCEPTION(400, "系统内部异常"),

    /**
     * 存在错误参数
     */
    PARAMS_NOT_RIGHT(400, "存在错误参数!"),

    /**
     * 算法分析结果为空
     **/
    ANALYSE_RESULT_IS_NULL(400, "算法分析结果为空!"),

    /**
     * 服务实例请求不存在
     **/
    APPLICATION_NOT_EXISTS(400, "服务实例请求不存在!"),

    /**
     * 更新通道状态失败
     **/
    FAILED_TO_MODIFY_CHANNEL(400, "更新通道状态失败!"),

    /**
     * 获取通道信息失败
     **/
    FAILED_TO_QUERY_CHANNEL(400, "获取通道信息失败!"),

    /**
     * 获取通道信息不完整,请检查通道配置！
     **/
    QUERY_CHANNEL_NOT_COMPELETE(400, "获取通道信息不完整,请检查通道配置!"),

    /**
     * 暂无可用通道
     **/
    NO_CHANNEL_AVAILABLE(400, "暂无可用通道!"),

    /**
     * 获取通道状态失败
     **/
    FAILED_TO_QUERY_CHANNELSTATUS(400, "获取通道状态失败!"),

    /**
     * 设置占用通道状态失败
     **/
    FAILED_TO_SET_CHANNELSTATUS(400, "设置占用通道状态失败!"),

    /**
     * 设置释放通道状态失败
     **/
    FAILED_TO_SET_DELIVER_CHANNELSTATUS(400, "设置释放通道状态失败!"),

    /**
     * 获取通道状态信息不完整
     **/
    QUERY_CHANNELSTATUS_NOT_COMPELETE(400, "获取通道状态信息不完整!"),

    /**
     * 服务实例不存在
     **/
    SERVICE_INST_NOT_EXISTS(400, "服务实例不存在!"),

    /**
     * AI分析成功，视频videoId不能为空
     **/
    VIDEOID_NOT_EXISTS(400, "AI分析成功，视频videoId不能为空!"),

    /**
     * 请求中存在名称相同的配置
     **/
    REQUEST_THE_SAME_CONFIGURATION(400, "请求中存在名称相同的配置!"),

    /**
     * SQL异常
     **/
    SQL_ERROR_EXCEPTION(501, "SQL执行异常!");

    /**
     * 结果类型CODE
     */
    @Getter
    private final int code;

    /**
     * 结果类型描述
     */
    @Getter
    private final String msg;
}
