package cn.iocoder.yudao.module.configure.enums;
import cn.iocoder.yudao.framework.common.exception.ErrorCode;

/**
 * 业务异常的错误码区间，解决：解决各模块错误码定义，避免重复，在此只声明不做实际使用
 *
 * 一共 10 位，分成四段
 *
 * 第一段，1 位，类型
 *      1 - 业务module模块的业务级别异常
 *      x - 预留
 * 第二段，3 位，系统类型
 *      001 - 用户系统
 *      010 - basic系统
 *      011 - 模板配置模块
 *      012 - 流通模块
 *      013 - 生产模块
 *      014 - 标识码模块
 *      ... - ...
 * 第三段，3 位，模块
 *      不限制规则。
 *      一般建议，每个系统里面，可能有多个模块，可以再去做分段。以用户系统为例子：
 *          001 - OAuth2 模块
 *          002 - User 模块
 *          003 - MobileCode 模块
 * 第四段，3 位，错误码
 *       不限制规则。
 *       一般建议，每个模块自增。
 *
 * @author 芋道源码
 */
public interface ErrorCodeConstants {

    // 模块 system 错误码区间 [1-000-001-000]
    // 模块 basic 错误码区间 [1-010-000-000]
    // 模块 configure 错误码区间 [1-011-000-000]
    /********************** 配置管理模块错误码 **********************/
    /**
     * 溯源模板管理相关异常 模块代码 001
     **/
    ErrorCode TRACE_TEMPLATE_NOT_EXISTS = new ErrorCode(1011001001, "溯源模板不存在");
    ErrorCode TRACE_LINK_NOT_EXISTS = new ErrorCode(1011001002, "溯源模板-环节不存在");
    ErrorCode TRACE_LINK_ITEM_NOT_EXISTS = new ErrorCode(1011001003, "溯源模板环节item不存在");
    ErrorCode SELECT_GOODS_NOT_BELONG_TO_BUSINESS = new ErrorCode(1011001004, "所选商品不属于该商户");
    /**
     * 溯源链证书配置相关异常 模块代码 002
     */
    ErrorCode TRACE_CERT_NOT_EXISTS = new ErrorCode(1011002001, "溯源链证书配置不存在");
    ErrorCode TRACE_CERT_IS_EXISTS_BY_BELONG_BUSINESS = new ErrorCode(1011002002, "该商户溯源链证书配置已创建");
    /**
     * 小程序模板管理相关异常 模块代码 003
     */
    ErrorCode UNI_TEMPLATE_NOT_EXISTS = new ErrorCode(1011003001, "小程序模板不存在");
    ErrorCode UNI_TEMPLATE_NAME_IS_SAME_EXISTS = new ErrorCode(1011003002, "存在相同的小程序模板名");
    ErrorCode UNI_TEMPLATE_ITEM_NOT_EXISTS = new ErrorCode(1011003003, "小程序模板环节配置明细不存在");
    ErrorCode UNI_TEMPLATE_SCAN_RECORD_ICON_NOT_BE_NULL = new ErrorCode(1011003004, "扫码记录图标不能为空");
    ErrorCode UNI_TEMPLATE_GOODS_DETAIL_ICON_NOT_BE_NULL = new ErrorCode(1011003005, "商品详情图标不能为空");
    ErrorCode UNI_TEMPLATE_AI_ICON_NOT_BE_NULL = new ErrorCode(1011003006, "AI图标不能为空");
    ErrorCode UNI_TEMPLATE_SHOP_ICON_NOT_BE_NULL = new ErrorCode(1011003007, "商城图标不能为空");
    ErrorCode CAN_NOT_DELETE_DEFAULT_TEMPLATE = new ErrorCode(1011003008, "无法删除默认模板");
    ErrorCode MUST_BE_HAS_A_DEFAULT_TEMPLATE = new ErrorCode(1011003009, "至少需要有一个默认模板");
    ErrorCode UNI_TEMPLATE_LANGUAGE_ICON_NOT_BE_NULL = new ErrorCode(1011003010, "切换语言图标不能为空");

    /**
     * 溯源模板管理相关异常 模块代码 004
     **/
    ErrorCode INSPECTION_TEMPLATE_NOT_EXISTS = new ErrorCode(1011004001, "检测报告模板不存在");
    ErrorCode INSPECTION_ITEM_NOT_EXISTS = new ErrorCode(1011004002, "检测报告模板检测项目不存在");
    /**
     * 小程序设备环境类型配置相关异常 模块代码 005
     **/
    ErrorCode DEVICE_ENV_TYPE_NOT_EXISTS = new ErrorCode(1011005001, "小程序设备环境类型配置不存在");
    /**
     * 素材管理相关异常 模块代码 006
     **/
    ErrorCode MATERIAL_MANAGEMENT_NOT_EXISTS = new ErrorCode(1011006001, "素材不存在");
    ErrorCode MATERIAL_GROUP_NOT_EXISTS = new ErrorCode(1011006101, "素材分组不存在");
    ErrorCode MATERIAL_GROUP_EXISTS_RELATED = new ErrorCode(1011006101, "素材分组存在关联素材");
    // 模块 flow 错误码区间 [1-012-000-000]
    // 模块 product 错误码区间 [1-013-000-000]
    // 模块 identity 错误码区间 [1-014-000-000]
}
