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

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.*;
import com.brilliance.isc.swift.objmtconvert.util.DateUtil;
import lombok.Data;

import java.util.Date;

/**
 * @author : zxg
 * @data : Created in 2023/4/23
 * @description :
 */
@Data
public class MXPacs01000103Creator extends AbsMXCreator {

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

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

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

    /**
     * 收款信息标识
     */
    private String cdtId;

    /**
     *收款行
     */
    private Agent cdtrAgt;

    /**
     * 收款行账户
     */
    private Account cdtrAgtAcct;

    /**
     * 收款方
     */
    private Agent cdtr;

    /**
     * 收款方账户
     */
    private Account cdtrAcct;
    /**
     * 消息标识号
     */
    private String instrId;

    /**
     * 交易标识号
     */
    private String txId;

    /**
     * 端到端标识号
     */
    private  String endToEndId;
    /**
     * 清算系统参考号
     */
    private String clrSysRef;

    /**
     * 交易类型信息
     */
    private PmtTpInf pmtTpInf;

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

    /**
     * 结算日期
     */
    private String intrBkSttlmDt;

    /**
     * 结算时间信息
     */
    private SttlmTmReq sttlmTmReq;

    /**
     * 汇款方
     */
    private Agent dbtr;

    /**
     * 汇款方账户
     */
    private Account dbtrAcct;

    /**
     * 汇款行
     */
    private Agent dbtrAgt;

    /**
     * 汇款行账户
     */
    private Account dbtrAgtAcct;

    /**
     * 债务代理人指示
     */
    private String instrForDbtrAgt;

    /**
     * 交易目的
     */
    private Purp purp;

    /**
     * 相关汇款信息
     */
    private RmtInf rmtInf;

    /**
     * 交易数
     */
    private String nbOfTxs;

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

    public void setIntrBkSttlmDt(Date intrBkSttlmDt){
        this.intrBkSttlmDt = DateUtil.format(intrBkSttlmDt,"yyyy-MM-dd");
    }


}
