package com.brilliance.isc.bo;

import com.brilliance.mda.runtime.mda.util.Decimals;
import com.brilliance.isc.common.vo.AbstractCommonVo;
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 Bod extends AbstractCommonVo {

    //Internal Unique ID of Export Collection
    private String inr = NULLSTR;

    //Our Reference
    private String ownref = NULLSTR;

    //Externally Displayed Name to Identify the Contract
    private String nam = NULLSTR;

    //Agent Reference
    private String agtref = NULLSTR;

    //Agent Account
    private String agtact = NULLSTR;

    //Agent Commission
    private String agtcom = NULLSTR;

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

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

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

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

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

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

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

    //Collection Condition
    private String doctypcod = NULLSTR;

    //Start of Maturity Period MATBEG
    private String matperbeg = NULLSTR;

    //Number of Days/Months for Maturity Period
    private  int matpercnt ;

    //Days/Months or Years for Maturity Period
    private String matpertyp = NULLSTR;

    //Transport Document Type
    private String trpdoctyp = NULLSTR;

    //Transport Document No.
    private String trpdocnum = NULLSTR;

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

    //Mode of Transport
    private String tramod = NULLSTR;

    //Shipment from
    private String shpfro = NULLSTR;

    //Shipment to
    private String shpto = NULLSTR;

    //Waive Collecting Bank Charges
    private String waicolcod = NULLSTR;

    //Waive Remitting Bank Charges
    private String wairmtcod = NULLSTR;

    //Our Charges to
    private String chato = NULLSTR;

    //Country Code Risk Country!
    private String stacty = NULLSTR;

    //Goods Code
    private String stagod = NULLSTR;

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

    //Responsible User
    private String ownusr = NULLSTR;

    //Version Counter
    private String ver = NULLSTR;

    //Free of Payment
    private String focflg = NULLSTR;

    //Direct Collection
    private String dircolflg = NULLSTR;

    //Payment Under Reserve
    private String ccdpurflg = NULLSTR;

    //Truncation - Physical Document Kept w OWN
    private String ccdndrflg = NULLSTR;

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

    //Payment Document Number
    private String paydocnum = NULLSTR;

    //Payment Document Type
    private String paydoctyp = NULLSTR;

    //Multiple Tenor Flag
    private String mattxtflg = NULLSTR;

    //Defer Payment until
    private String othins = NULLSTR;

    //Document Set Status
    private String docsta = NULLSTR;

    //Reservated Contract
    private String resflg = NULLSTR;

    //Number of Amendments
    private  int amenbr ;

    //Receiver of second Mail
    private String msgrol = NULLSTR;

    //Entity holding Contract
    private String etyextkey = NULLSTR;

    //less comm
    private BigDecimal lescom  = Decimals.ZERO_SCALE3;

    //BRANCH
    private String branchinr = NULLSTR;

    //BRANCH KEY
    private String bchkeyinr = NULLSTR;

    //发票类型
    private String invtyp = NULLSTR;

    //中文�'�物描述
    private String goddspcn = NULLSTR;

    //发票号
    private String invref = NULLSTR;

    //交易对手名称
    private String oppnam = NULLSTR;
}
