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

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;
import java.util.List;

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

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

    /**
     * 授权情况
     */
    private List<Authstn> authstn;

    /**
     * 发起方
     */
    private Party initgPty;

    /**
     * 代理行
     */
    private Agent fwdgAgt;

    /**
     * 支付信息唯一标识
     */
    private String pmtInfId;

    /**
     * 支付方式
     */
    private String pmtMtd;

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

    /**
     * 付款日期
     */
    private ReqdExctnDt reqdExctnDt;

    /**
     * 现金池调整日期
     */
    private String poolgAdjstmntDt;

    /**
     * 发汇人
     */
    private Agent dbtr;

    /**
     * 发汇人账户
     */
    private Account dbtrAcct;

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

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

    /**
     * 付款指示进一步消息
     */
    private String instrForDbtrAgt;

    /**
     * 实际出钱方
     */
    private Party ultmtDbtr;

    /**
     * 交易费用承担方
     */
    private String chrgBr;

    /**
     * 交易费用账户
     */
    private Account chrgsAcct;

    /**
     * 服务收费代理行
     */
    private Agent chrgsAcctAgt;

    /**
     * 支付标识
     */
    private PmtId pmtId;

    /**
     * 金额
     */
    private Amt2 amt;

    /**
     * 汇率信息
     */
    private XchgRateInf xchgRateInf;

    /**
     *中间参与行1
     */
    private Agent intrmyAgt1;

    /**
     * 中间参与行1账户
     */
    private Account intrmyAgt1Acct;

    /**
     * 中间参与行2
     */
    private Agent intrmyAgt2;

    /**
     * 中间参与行2账户
     */
    private Account intrmyAgt2Acct;

    /**
     * 中间参与行3
     */
    private Agent intrmyAgt3;

    /**
     * 中间参与行3账户
     */
    private Account intrmyAgt3Acct;

    /**
     * 收汇行代理行
     */
    private Agent cdtrAgt;

    /**
     * 收汇行代理行账户
     */
    private Account cdtrAgtAcct;

    /**
     * 收汇行
     */
    private Party cdtr;

    /**
     * 收汇行账户
     */
    private Account cdtrAcct;

    /**
     * 实际的收钱方
     */
    private Party ultmtCdtr;

    /**
     * 收汇指示说明
     */
    private List<InstrForCdtrAgt> instrForCdtrAgt;

    /**
     * 付款指示进一步资料
     */
    private String instrForDbtrAgt2;

    /**
     * 支付交易的潜在原因
     */
    private Purp purp;

    /**
     * 监管信息
     */
    private List<Object> inf;

    /**
     * 相关汇款信息
     */
    private List<RltdRmtInf> rltdRmtInf;

    /**
     * Number Of Transactions
     */
    private String nbOfTxs;


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








}
