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

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.Agent;
import com.brilliance.isc.swift.objmtconvert.model.mx.common.Party;
import com.brilliance.isc.swift.objmtconvert.model.mx.common.RslvdCase;
import lombok.Data;

import java.util.List;

/**
 * @author zh
 * @create 2023-04-23-16:44
 */
@Data
public class MXCamt02900109Creator extends AbsMXCreator {

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

    /**
     * 转让人
     */
    private Agent assgnrAgt;

    /**
     * 受让人
     */
    private Agent assgneAgt;

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

    /**
     * 表示当前的状态
     */
    private String conf;

    /**
     *唯一标识符
     */
    private String cxlStsId;

    private RslvdCase rslvdCase;

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

    /**
     * 原始消息的名称,原始消息名称标识，
     * 以pacs.008，pacs003开始或者等于MT10[0-9],就是MT196；
     * 以pacs.009，pacs010开始或者等于MT20[0-9],就是MT296
     */
    private String orgnlMsgNmId;

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

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

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

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

    /**
     * 原始清分的唯一标识
     */
    private String orgnlClrSysRef;

    /**
     * 端到端业务唯一参考号
     */
    private String uetr;

    /**
     *出具解除通知的一方
     */
    private Party orgtr;

    /**
     * 状态报告的原因
     */
    private String rsnCd;

    /**
     * 取消状态原因的详情
     */
    private List<String> addtlInf;

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

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