package com.brilliance.isc.common.vo;

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;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class FcdVo extends AbstractCommonVo {

    //Internal Unique ID of FC Contract
    private String inr = NULLSTR;

    //Our Reference
    private String ownref = NULLSTR;

    //Name of FC Contract
    private String nam = NULLSTR;

    //Responsible User
    private String ownusr = NULLSTR;

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

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

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

    //Drawer Party
    private String aplptyinr = NULLSTR;

    //Drawer Address
    private String aplptainr = NULLSTR;

    //Drawer
    private String aplnam = NULLSTR;

    //Drawer Reference
    private String aplref = NULLSTR;

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

    //Version Counter
    private String ver = NULLSTR;

    //Target Currency
    private String acccur = NULLSTR;

    //Contract Rate
    private BigDecimal dcbextrat = Decimals.ZERO_SCALE6;

    //Target Rate
    private BigDecimal scbextrat = Decimals.ZERO_SCALE6;

    //Cross Rate
    private BigDecimal rat = Decimals.ZERO_SCALE6;

    //Engagement account
    private String engact = NULLSTR;

    //The branch do the transction
    private String bchkeyinr = NULLSTR;

    //currency
    private String cur = NULLSTR;

    //balance valid in periode
    private BigDecimal amt = Decimals.ZERO_SCALE2;

    //External key used to uniquely identify a party
    private String extkey = NULLSTR;

    //release flag
    private String relflg = NULLSTR;

    //use flag
    private String useflg = NULLSTR;

    //collect reason
    private String reason = NULLSTR;

    //是否过帐
    private String gleflg = NULLSTR;

    //Register Ref.
    private String regref = NULLSTR;

    //BRANCHINR
    private String branchinr = NULLSTR;

    //Extend Account
    private String extact = NULLSTR;

    //TERM TYPE
    private String trmtyp = NULLSTR;

    //对方�'�币
    private String othcur = NULLSTR;

    //对方�'�币金额
    private BigDecimal othamt = Decimals.ZERO_SCALE2;

    //Type
    private String fcdtyp = NULLSTR;

    //Object Type
    private String pnttyp = NULLSTR;

    //Object INR
    private String pntinr = NULLSTR;
}
