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

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.Amt;
import com.brilliance.isc.swift.objmtconvert.model.mx.common.Cretr;
import com.brilliance.isc.swift.objmtconvert.model.mx.common.CxlRsnInf;
import com.brilliance.isc.swift.objmtconvert.util.DateUtil;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @Description
 * @Author s_guodong
 * @Date 2023/4/23
 */
@Data
public class MXCamt05600108Creator extends AbsMXCreator {
    public MXCamt05600108Creator(String identifier) {
        super(identifier);
    }

    /**
     * 转让行代理行
     */
    private Agent assgnrAgt;

    /**
     * 受让行代理行
     */
    private Agent assgneAgt;

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

    /**
     * 原始消息名称
     */
    private String orgnlMsgNmId;

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

    /**
     * 原始指示方唯一标识
     */
    private String orgnlInstrId;

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

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

    /**
     * 清分系统唯一标识
     */
    private String orgnlClrSysRef;

    /**
     * 发报行给收报行的金额
     */
    private Amt orgnlIntrBkSttlmAmt;

    /**
     * 原始结算日期
     */
    private String orgnlIntrBkSttlmDt;

    /**
     * 取消原因详情
     */
    private List<CxlRsnInf> cxlRsnInf;

    /**
     * 当事人信息
     */
    private Cretr cretr;

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

    public void setOrgnlIntrBkSttlmDt(Date date) {
        orgnlIntrBkSttlmDt = DateUtil.format(date, "yyyy-MM-dd");
    }
}
