package com.brilliance.isc.vo.model;

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 TrdVo extends AbstractCommonVo {

    //INR of Loan Contract
    private String inr = NULLSTR;

    //Our Reference
    private String ownref = NULLSTR;

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

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

    //Parent Contract Type
    private String pnttyp = NULLSTR;

    //Parent Contract
    private String pntinr = NULLSTR;

    //Parent Contract Name
    private String pntnam = NULLSTR;

    //Parent Contract Reference
    private String pntref = NULLSTR;

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

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

    //Last Interest Settlement
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date lstintdat = NULLDATE;

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

    //Start Past-due Date
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date spddat = NULLDATE;

    //Date Opened
    @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;

    //Tenor Days
    private  long tenday ;

    //Actual Financed Days
    private  int actfinday ;

    //Margin Spread applied to Interest Rate
    private BigDecimal intrat  = Decimals.ZERO_SCALE6;

    //Resp. User
    private String ownusr = NULLSTR;

    //Version
    private String ver = NULLSTR;

    //Base Rate
    private String irtcod = NULLSTR;

    //Number of Extensions
    private  int extnmb ;

    //Type of Financing
    private String fintyp = NULLSTR;

    //% Financed
    private  BigDecimal pctfin  = Decimals.ZERO_SCALE2;

    //Good's Code for Statistics
    private String stagod = NULLSTR;

    //Country Code for Statistics
    private String stacty = NULLSTR;

    //基准利率规则
    private String jzllgz = NULLSTR;

    //Entity holding Contract
    private String etyextkey = NULLSTR;

    //Marginal Rate
    private  BigDecimal marrat  = Decimals.ZERO_SCALE6;

    //Grace rate
    private  BigDecimal grarat  = Decimals.ZERO_SCALE6;

    //actural rate
    private  BigDecimal actrat  = Decimals.ZERO_SCALE6;

    //BRANCH CODE KEYINR
    private String bchkeyinr = NULLSTR;

    //BRANCHINR
    private String branchinr = NULLSTR;

    //借据号
    private String fincod = NULLSTR;

    //Finance Account
    private String finact = NULLSTR;

    //Finance Data Block
    private String finblk = NULLSTR;

    //Interface Data Block
    private String itfblk = NULLSTR;

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

    //Overdue Flag
    private String ovdflg = NULLSTR;

    //收支标志
    private String feetyp = NULLSTR;

    //收入/?'?用总额
    private  BigDecimal feeamt  = Decimals.ZERO_SCALE3;

    //实际利率
    private  BigDecimal actyld  = Decimals.ZERO_SCALE6;

    //Mortgage Flag
    private String guaflg = NULLSTR;

    //海外代付
    private String oseflg = NULLSTR;

    //海外代付天数
    private  int oseday ;

    //定价审批代码
    private String dinjdm = NULLSTR;

    //交易性?'?
    private String trntyp = NULLSTR;

    //对方?'?号
    private String oppacc = NULLSTR;

    //是否定向收付
    private String flowflag = NULLSTR;

    //收款?'?号
    private String recaccount = NULLSTR;

    //收款人名称
    private String recname = NULLSTR;

    //收款人国别代码
    private String reccountrycode = NULLSTR;

    //收款人国内地区码
    private String recdistrictcode = NULLSTR;

    //税率
    private  BigDecimal shuilv  = Decimals.ZERO_SCALE4;

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

    //市场LPR期限品种
    private String lprtyp = NULLSTR;

    //?'?易合同号
    private String mycontno = NULLSTR;

    //外汇?'?款专户过?'?标识
    private String ffaflg = NULLSTR;

    //付款期限
    private  int tenorday ;

    //付款方式
    private String avbby = NULLSTR;

    //MATPRETYP
    private String matpretyp = NULLSTR;

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

    //发票号
    private String invref = NULLSTR;

    //交单行Swift Code
    private String prbkbic = NULLSTR;

    //交单行名称
    private String prbkname = NULLSTR;

    //销?'?方名称
    private String sellername = NULLSTR;

    //受托支付对象?'?号
    private String stzfdxzh = NULLSTR;
}
