package cn.iocoder.yudao.module.chain.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]
    // 模块 flow 错误码区间 [1-012-000-000]
    // 模块 product 错误码区间 [1-013-000-000]
    // 模块 identity 错误码区间 [1-014-000-000]
    // 模块 chain 错误码区间 [1-015-000-000]
    /**
     * 区块上链操作具体上链信息相关异常 模块代码 001
     */
    ErrorCode BLOCK_CERTIFICATE_NOT_EXISTS = new ErrorCode(1015001001, "区块证书不存在");
    ErrorCode PARAMS_IS_ERROR = new ErrorCode(1015001002, "请求参数异常");
    ErrorCode EXISTS_MANY_BLOCK_CERTIFICATE = new ErrorCode(1015001003, "存在多个区块证书");
    ErrorCode CAN_NOT_DELETE_WHEN_ON_CHAIN = new ErrorCode(1015001004, "无法删除已上链的区块证书");
    ErrorCode HAS_ON_CHAIN = new ErrorCode(1015001005, "此区块证书已上链");
    ErrorCode NOT_ON_CHAIN = new ErrorCode(1015001006, "此区块证书未上链");
    ErrorCode BLOCK_CERTIFICATE_HAS_EXISTS = new ErrorCode(1015001007, "已存在该区块证书");
    /**
     * 区块上链操作具体上链信息相关异常 模块代码 002
     */
    ErrorCode OPERATE_DETAIL_NOT_EXISTS = new ErrorCode(1015002001, "区块上链操作具体上链信息不存在");
}
