package com.brilliance.isc.swift.objmtconvert.model.mx.pacs00200110;

import com.brilliance.isc.swift.objmtconvert.ext.XmlDate;
import com.brilliance.isc.swift.objmtconvert.model.AbsMXCreator;
import com.brilliance.isc.swift.objmtconvert.model.mx.common.Dt;
import com.brilliance.isc.swift.objmtconvert.model.mx.common.Party;
import com.brilliance.isc.swift.objmtconvert.model.mx.common.Rsn;
import lombok.Data;

import java.util.List;

/**
 * @author zh
 * @create 2023-04-23-14:27
 */
@Data
public class MXPacs00200110Creator extends AbsMXCreator {

    public MXPacs00200110Creator(String identifier){
        super(identifier);
    }

    /**
     * 消息标识号
     */
    private String msgId;

    /**
     * 消息创建时间
     */
    private String creDtTm;

    /**
     * 原始消息标识号
     */
    private String orgnlMsgId;

    /**
     * 原始消息名称标识，用来标识是MT199还是MT299
     */
    private String orgnlMsgNmId;

    /**
     * 原始消息创建时间
     */
    private String orgnlCreDtTm;

    /**
     * 原始消息标识号
     */
    private String orgnlInstrId;

    /**
     * 原始端到端标识号
     */
    private String orgnlEndToEndId;

    /**
     * 原始交易标识号
     */
    private String orgnlTxId;

    /**
     * 原始端到端业务唯一参考号
     */
    private String orgnlUETR;

    /**
     * 交易状态
     */
    private String txSts;

    /**
     * 提供状态信息方
     */
    private Party orgtr;

    /**
     * 原因
     */
    private Rsn rsn;

    /**
     * 附加信息
     */
    private List<String> addtlInf;

    /**
     * 付款生效日期
     */
    private Dt fctvIntrBkSttlmDt;

    /**
     * 清算系统参考号
     */
    private String clrSysRef;

    public void setCreDtTm(XmlDate creDtTm) {
        this.creDtTm = creDtTm.getDateStr();
    }

    public void setOrgnlCreDtTm(XmlDate orgnlCreDtTm) {
        this.orgnlCreDtTm = orgnlCreDtTm.getDateStr();
    }
}
