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

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

    //Own Reference BE Number
    private String ownref = NULLSTR;

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

    //Resp. User
    private String ownusr = NULLSTR;

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

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

    //Parent Contract Type
    private String pnttyp = NULLSTR;

    //Parent Contract INR
    private String pntinr = NULLSTR;

    //Date of Receipt 1st Beneficiary
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date rcvdatbe1 = NULLDATE;

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

    //Date of Advice of Payment
    @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;

    //Document Type
    private String doctypcod = NULLSTR;

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

    //Version
    private String ver = NULLSTR;

    //Documents on Approval Basis
    private String approvcod = NULLSTR;

    //Free of Payment
    private String frepayflg = NULLSTR;

    //Multiple Tenor Flag
    private String mattxtflg = NULLSTR;

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

    //Presented by
    private String docprbrol = NULLSTR;

    //Payer
    private String payrol = NULLSTR;

    //Enter Docs, Discrep. and Instructions
    private String dscinsflg = NULLSTR;

    //Accept Documents now
    private String acpnowflg = NULLSTR;

    //Currency of Total Amount to be Paid
    private String totcur = NULLSTR;

    //Total Amount to be Paid
    private BigDecimal totamt  = Decimals.ZERO_SCALE3;

    //Date to be Paid
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date totdat = NULLDATE;

    //Type of Advice Received
    private String advtyp = NULLSTR;

    //Document Set Status
    private String docsta = NULLSTR;

    //Date of Receipt 2nd Beneficiary
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date rcvdatbe2 = NULLDATE;

    //Presented by 1st Ben-Side
    private String docprbrolbe1 = NULLSTR;

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

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

    //Entity holding Contract
    private String etyextkey = NULLSTR;

    //Reimbursement by
    private String rmbrol = NULLSTR;

    //BRANCH CODE KEYINR
    private String bchkeyinr = NULLSTR;

    //BRANCHINR
    private String branchinr = NULLSTR;

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

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