package com.brilliance.isc.swift.objmtconvert.model.mt2xx.mt2XXAbsCreator;

import com.brilliance.isc.swift.objmtconvert.annotation.FieldDescription;
import com.brilliance.isc.swift.objmtconvert.annotation.Status;
import com.brilliance.isc.swift.objmtconvert.annotation.TagName;
import com.brilliance.isc.swift.objmtconvert.annotation.TagRegex;
import com.brilliance.isc.swift.objmtconvert.model.AbsMTCreator;
import com.brilliance.isc.swift.objmtconvert.model.commontag.ActnoBicAdrTagXXX;
import com.brilliance.isc.swift.objmtconvert.model.commontag.DcDateCurAmtTagXXX;
import com.brilliance.isc.swift.objmtconvert.result.MtResult;

/**
 * @Description：
 * @Author：夏猛
 * @CreateTime：2023/2/27 9:31
 **/
public class MT204AbsCreator extends AbsMTCreator {

    //20
    @Status("M")
    @TagName("20")
    @FieldDescription("Transaction Reference Number")
    @TagRegex("16x")
    private String transactionReferenceNumberB;

    //21
    @Status("O")
    @TagName("21")
    @FieldDescription("Related Reference")
    @TagRegex("16x")
    private String relatedReference;

    //32B
    @Status("M")
    @TagName("32B")
    @FieldDescription("Currency Code, Amount")
    @TagRegex("3!a15d")
    private DcDateCurAmtTagXXX currencyCodeAmount;

    //72
    @Status("O")
    @TagName("72")
    @FieldDescription("Sender to Receiver Information")
    @TagRegex("6*35x")
    private String sendertoReceiverInformationB;

    //53a
    @Status("M")
    @TagName({"53A","53B","53D"})
    @FieldDescription("Debit Institution")
    @TagRegex({"[/1!a][/34x]<crlf>4!a2!a2!c[3!c]","[/1!a][/34x]<crlf>[35x]","[/1!a][/34x]<crlf>4*35x"})
    private ActnoBicAdrTagXXX debitInstitution;

    public String getTransactionReferenceNumberB() {
        return transactionReferenceNumberB;
    }

    public void setTransactionReferenceNumberB(String transactionReferenceNumberB) {
        this.transactionReferenceNumberB = transactionReferenceNumberB;
    }


    public String getRelatedReference() {
        return relatedReference;
    }

    public void setRelatedReference(String relatedReference) {
        this.relatedReference = relatedReference;
    }

    public DcDateCurAmtTagXXX getCurrencyCodeAmount() {
        return currencyCodeAmount;
    }

    public void setCurrencyCodeAmount(DcDateCurAmtTagXXX currencyCodeAmount) {
        this.currencyCodeAmount = currencyCodeAmount;
    }

    public ActnoBicAdrTagXXX getDebitInstitution() {
        return debitInstitution;
    }

    public void setDebitInstitution(ActnoBicAdrTagXXX debitInstitution) {
        this.debitInstitution = debitInstitution;
    }

    public String getSendertoReceiverInformationB() {
        return sendertoReceiverInformationB;
    }

    public void setSendertoReceiverInformationB(String sendertoReceiverInformationB) {
        this.sendertoReceiverInformationB = sendertoReceiverInformationB;
    }

    public MT204AbsCreator(String msgType) {
        super(msgType);
    }

    public MT204AbsCreator() {
        super();
    }


    public MtResult unpack() {
        return null;
    }




}
