package com.psbc.cpsp.entity.enums;

import java.text.MessageFormat;

import static com.psbc.cpsp.entity.config.ResponsePrefixConfig.preFix;
import static com.psbc.cpsp.entity.constant.ResponseConstant.TECHNICAL_LOGIC;
import static com.psbc.cpsp.entity.constant.ResponseConstant.TECHNOLOGICAL_ERROR;


/**
 * 技术类错误-X
 * 说明：技术/机器错误，处理人为技术人员  例举：硬件 网络 系统等
 * 格式：一级分类代码 + 系统号 + 二级分类代码 + 6位响应码，描述需与二级分类代码匹配
 * 二级分类从ResponseConstant中引用
 */
public enum TechErrRespCodeEnum implements BaseRespCodeInterFace {

    /**
     * 技术类错误-X, 技术逻辑-TL, 系统内部异常
     */
    REQUEST_PROCESSING_FAILED(TECHNOLOGICAL_ERROR + preFix + TECHNICAL_LOGIC + "820001", "系统内部异常:{0}"),;

    /**
     * 智慧园区16位响应码-枚举编码
     */
    private final String code;
    /**
     * 响应描述信息
     */
    private final String desc;

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

    @Override
    public String getDesc() {
        return desc;
    }

    @Override
    public String getDesc(String... args) {
        if (args == null) {
            return desc;
        }

        return MessageFormat.format(desc, args);
    }

    TechErrRespCodeEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }
}
