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

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

    //Reference
    private String ownref = NULLSTR;

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

    //Responsible User
    private String ownusr = NULLSTR;

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

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

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

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

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

    //Issuing Bank
    private String issnam = NULLSTR;

    //Issuing Bank Ref.
    private String issref = NULLSTR;

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

    //Number of Amendments
    private  int amenbr ;

    //Available by [AVBBY0]
    private String avbby = NULLSTR;

    //Available with
    private String avbwth = NULLSTR;

    //Beneficiary
    private String bennam = NULLSTR;

    //Beneficiary Reference
    private String benref = NULLSTR;

    //Own Charges Borne by
    private String chato = NULLSTR;

    //Percentage or Amount Confirmed
    private String cnfflg = NULLSTR;

    //Confirmation Instructions from Iss.Bank
    private String cnfdet = NULLSTR;

    //Confirmation Status
    private String cnfsta = NULLSTR;

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

    //Place of Expiry
    private String expplc = NULLSTR;

    //Form of Documentary Credit
    private String lcrtyp = NULLSTR;

    //Amount Specification
    private String nomspc = NULLSTR;

    //Amount Tolerance - Positive
    private  int nomtop ;

    //Amount Tolerance - Negative
    private  int nomton ;

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

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

    //Shipment from
    private String shpfro = NULLSTR;

    //Partial Shipment
    private String shppar = NULLSTR;

    //For Transportation to
    private String shpto = NULLSTR;

    //Transshipment
    private String shptrs = NULLSTR;

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

    //Goods Code for Statistics
    private String stagod = NULLSTR;

    //No. of Existing and not Completely Processed  Document Sets
    private  int utlnbr ;

    //Version Counter
    private String ver = NULLSTR;

    //Send Directly to Applicant's Bank
    private String aplbnkdirsnd = NULLSTR;

    //Maximum Tenor
    private  int tenmaxday ;

    //Confirmation Status of 1st Advising Bank
    private String cnfsnd = NULLSTR;

    //Revolving Flag
    private String revflg = NULLSTR;

    //Number of Revolvings under L/C
    private  int revnbr ;

    //Revolving Times
    private  int revtimes ;

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

    //Credit is Marked as Cumulative
    private String revcum = NULLSTR;

    //Revolving Type
    private String revtyp = NULLSTR;

    //Confirmation Instructions to 2nd Adv.Bank
    private String cnfins = NULLSTR;

    //Red/Green Clause
    private String redclsflg = NULLSTR;

    //No. of Advised Sub-Contracts without Documents
    private  int advnbr ;

    //Reserved Contract
    private String resflg = NULLSTR;

    //Incoming Transfer
    private String inctrf = NULLSTR;

    //Applicable Rules
    private String apprul = NULLSTR;

    //Other Applicable Rules
    private String apprultxt = NULLSTR;

    //Port of Discharge
    private String pordis = NULLSTR;

    //Port of Loading
    private String porloa = NULLSTR;

    //Non-Bank Issuer
    private String nonban = NULLSTR;

    //Special Payment Conditions for specified Bank only
    private String spcrcbflg = NULLSTR;

    //Days of presentation period
    private  int prepers18 ;

    //Presentation period text
    private String prepertxts18 = NULLSTR;

    //Partial Shipment for Swift release 2018
    private String shppars18 = NULLSTR;

    //Transshipment for Swift relase 2018
    private String shptrss18 = NULLSTR;

    //Special payment conditions for beneficiary exists
    private String spcbenflg = NULLSTR;

    //Entity holding Contract
    private String etyextkey = NULLSTR;

    //Partial Confirmation
    private BigDecimal partcon  = Decimals.ZERO_SCALE2;

    //Collateralized L/C
    private String collflg = NULLSTR;

    //Test Key Unconfirmity
    private String teskeyunc = NULLSTR;

    //Authorization to Debit
    private String dbtflg = NULLSTR;

    //BRANCHINR
    private String branchinr = NULLSTR;

    //BRANCH CODE KEY
    private String bchkeyinr = NULLSTR;

    //Risk Rate
    private  BigDecimal rskrat  = Decimals.ZERO_SCALE2;

    //Flag
    private String dflg = NULLSTR;

    //运输方式
    private String tratyp = NULLSTR;

    //境内外对手行代码
    private String oppbnk = NULLSTR;

    //槸易类型
    private String mytype = NULLSTR;

    //是否可议付
    private String isyifu = NULLSTR;

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

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