package com.brilliance.isc.bo;

import com.brilliance.mda.runtime.mda.util.Decimals;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

import static com.brilliance.mda.runtime.mda.Constants.NULLDATE;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;


/**
* TABLE:fep: 
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Fep {

        //Internal Unique ID
        private String inr = NULLSTR;

        //Fee Code
        private String feecod = NULLSTR;

        //Contract Type
        private String objtyp = NULLSTR;

        //INR of Contract
        private String objinr = NULLSTR;

        //Relevant Contract Type
        private String relobjtyp = NULLSTR;

        //Relevant Contract INR
        private String relobjinr = NULLSTR;

        //External Visible Name Created from Transaction, Feecode  Line
        private String extkey = NULLSTR;

        //Text of Fee from and to FEETXT
        private String nam = NULLSTR;

        //Currency of Relevant Amount
        private String relcur = NULLSTR;

        //Relevant Amount
        private  BigDecimal relamt  = Decimals.ZERO_SCALE2;

        //Date 1
        @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
        private Date dat1 = NULLDATE;

        //Date 2
        @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
        private Date dat2 = NULLDATE;

        //Modified
        private String modflg = NULLSTR;

        //Units
        private  int unt ;

        //Rate Amount
        private  BigDecimal untamt  = Decimals.ZERO_SCALE2;

        //Rate Calculation
        private  BigDecimal ratcal  = Decimals.ZERO_SCALE6;

        //Rate
        private  BigDecimal rat  = Decimals.ZERO_SCALE6;

        //Minimum or Maximum Used
        private String minmaxflg = NULLSTR;

        //Fee Currency
        private String cur = NULLSTR;

        //Fee Amount
        private  BigDecimal amt  = Decimals.ZERO_SCALE2;

        //Currency of Converted Amount Usually SYSCUR, Optional
        private String xrfcur = NULLSTR;

        //Converted Amount in XRFCUR, Optional
        private  BigDecimal xrfamt  = Decimals.ZERO_SCALE2;

        //Profit Account for Fee
        private String feeacc = NULLSTR;

        //Fee Calculation Details
        private String infdetstm = NULLSTR;

        //INR of Party Paying
        private String ptyinr = NULLSTR;

        //Transaction Creating or Modifying the Entry
        private String srctrninr = NULLSTR;

        //Date of Creation
        @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
        private Date srcdat = NULLDATE;

        //Transaction which Replaced this Entry
        private String rpltrninr = NULLSTR;

        //Date Replaced
        @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
        private Date rpldat = NULLDATE;

        //Transaction Settling the Fee
        private String dontrninr = NULLSTR;

        //Date Done
        @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
        private Date dondat = NULLDATE;

        //Transaction Advising the Fee
        private String advtrninr = NULLSTR;

        //Date Advised
        @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
        private Date advdat = NULLDATE;

        //INR of Accruing Control Record
        private String acrinr = NULLSTR;

        //INR of Associated Temporary Settlement
        private String sepinr = NULLSTR;

        //Role
        private String rol = NULLSTR;

        //Original Amount
        private  BigDecimal ogiamt  = Decimals.ZERO_SCALE2;

        //Discount Amount
        private  BigDecimal dctamt  = Decimals.ZERO_SCALE2;
}