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 MT420AbsCreator 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","32B","32K"})
    @FieldDescription("Amount Traced")
    @TagRegex({"6!n3!a15d","3!a15d","1!a3!n2!a3!a15d"})
    private DcDateCurAmtTagXXX amountTraced;

    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 getAmountTraced() {
        return amountTraced;
    }

    public void setAmountTraced(DcDateCurAmtTagXXX amountTraced) {
        this.amountTraced = amountTraced;
    }

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

    public MT420AbsCreator() {
        super();
    }


    public MtResult unpack() {
        return null;
    }
}
