package com.brilliance.isc.esb.model;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;

public class Res<T> extends AbsRes {
    /**
     * 报文体
     */
    public T DATA;
    /**
     * 服务方响应返回码（兼容交换网关装sop）
     */
    public String PTCWDH = "AAAAAAA";
    public Res() {
    }

    public Res(T DATA) {
        this.DATA = DATA;
    }

    @JsonIgnore
    @JSONField(serialize = false)
    public ErrorHeader getErrorHeader() {
        if (DATA != null && DATA instanceof ErrorData) {
            ErrorData errorData = (ErrorData) DATA;
            return errorData.ERR000;
        }
        throw new NullPointerException("ERR000 is null");
    }

    @JsonIgnore
    @JSONField(serialize = false)
    public String getErrorCode() {
        if (DATA != null && DATA instanceof ErrorData) {
            ErrorData errorData = (ErrorData) DATA;
            if (errorData.ERR000 != null && errorData.ERR000.ERRORCODE != null && !"".equals(errorData.ERR000.ERRORCODE)) {
                return errorData.ERR000.ERRORCODE;
            }
        }
        return RETPUBLICHEADER.PTCWDH;
    }

    @JsonIgnore
    @JSONField(serialize = false)
    public String getErrorMsg() {
        if (DATA != null && DATA instanceof ErrorData) {
            ErrorData errorData = (ErrorData) DATA;
            if (errorData.ERR000 != null && errorData.ERR000.ERRORMSG != null) {
                return errorData.ERR000.ERRORMSG;
            }
        }
        return "服务方未返回错误信息";
    }
}
