package com.brilliance.isc.swift.objmtconvert.model.mt4xx.mt4XXAbsCreator;

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.DcDateCurAmtTagXXX;
import com.brilliance.isc.swift.objmtconvert.result.MtResult;

/**
 * @author zh
 * @create 2023-02-28-9:21
 */
public class MT412AbsCreator extends AbsMTCreator {

    @Status("M")
    @TagName("20")
    @FieldDescription("Sending Bank's TRN")
    @TagRegex("16x")
    private String sendingBankTRN;
    @Status("M")
    @TagName("21")
    @FieldDescription("Related Reference")
    @TagRegex("16x")
    private String relatedReference;
    @Status("M")
    @TagName("32A")
    @FieldDescription("Maturity Date, Currency Code, Amount Accepted")
    @TagRegex("6!n3!a15d")
    private DcDateCurAmtTagXXX dateCurrencyAmount;

    public String getSendingBankTRN() {
        return sendingBankTRN;
    }

    public void setSendingBankTRN(String sendingBankTRN) {
        this.sendingBankTRN = sendingBankTRN;
    }

    public String getRelatedReference() {
        return relatedReference;
    }

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

    public DcDateCurAmtTagXXX getDateCurrencyAmount() {
        return dateCurrencyAmount;
    }

    public void setDateCurrencyAmount(DcDateCurAmtTagXXX dateCurrencyAmount) {
        this.dateCurrencyAmount = dateCurrencyAmount;
    }

    public MT412AbsCreator(String jsonData) throws Exception {
        super(jsonData);
    }

    public MT412AbsCreator() {
        super();
    }


    public MtResult unpack() {
        return null;
    }
}
