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;


/**
* TABLE:trd:TRD - Loan Data
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Trd 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_SCALE2;

        //实际利率
        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;
}