package com.brilliance.isc.bo;

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

    //Internal Unique ID of CP Contract
    private String inr = NULLSTR;

    //Our Reference
    private String ownref = NULLSTR;

    //清算路径
    private String cptrou = NULLSTR;

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

    //Payee Party
    private String pyeptyinr = NULLSTR;

    //Payee Address
    private String pyeptainr = NULLSTR;

    //Payee
    private String pyenam = NULLSTR;

    //Payee Reference
    private String pyeref = NULLSTR;

    //Paying Bank Party
    private String pybptyinr = NULLSTR;

    //Paying Bank Address
    private String pybptainr = NULLSTR;

    //Paying Bank
    private String pybnam = NULLSTR;

    //Paying Bank Reference
    private String pybref = NULLSTR;

    //Ordering Customer Party
    private String orcptyinr = NULLSTR;

    //Ordering Customer Address
    private String orcptainr = NULLSTR;

    //Ordering Customer
    private String orcnam = NULLSTR;

    //Ordering Customer Reference
    private String orcref = NULLSTR;

    //Ordering Institution Party
    private String oriptyinr = NULLSTR;

    //Ordering Institution Address
    private String oriptainr = NULLSTR;

    //Ordering Institution
    private String orinam = NULLSTR;

    //Ordering Institution Reference
    private String oriref = NULLSTR;

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

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

    //Our Charges to
    private String chato = 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;

    //Details of Charges
    private String detchgcod = NULLSTR;

    //Payment Type
    private String paytyp = NULLSTR;

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

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

    //Entity holding Contract
    private String etyextkey = NULLSTR;

    //清算编号
    private String sysno = NULLSTR;

    //所属行
    private String othbch = NULLSTR;

    //收款对象
    private String gors = NULLSTR;

    //国外�'�用币种
    private String feecur = NULLSTR;

    //国外�'�用金额
    private BigDecimal feeamt = Decimals.ZERO_SCALE3;

    //汇款性�'�
    private String trntyp = NULLSTR;

    //汇款方式
    private String paytype = NULLSTR;

    //付款日期
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date paydat = NULLDATE;

    //客户类型
    private String clityp = NULLSTR;

    //结汇类型
    private String trdint = NULLSTR;

    //原始币种
    private String curf33b = NULLSTR;

    //发报行扣�'�币种
    private String cur71f = NULLSTR;

    //发报行扣�'�金额
    private BigDecimal amt71f = Decimals.ZERO_SCALE3;

    //原始金额
    private BigDecimal amtf33b = Decimals.ZERO_SCALE3;

    //汇率
    private BigDecimal f36 = Decimals.ZERO_SCALE6;

    //指令代码
    private String f23e = NULLSTR;

    //银行操作码
    private String f23b = NULLSTR;

    //售汇类型
    private String trdout = NULLSTR;

    //swift type
    private String swftyp = NULLSTR;

    //inr of trd
    private String trdinr = NULLSTR;

    //Rel21
    private String rel21 = NULLSTR;

    //BRANCHINR
    private String branchinr = NULLSTR;

    //BRANCHINR CODE KEY
    private String bchkeyinr = NULLSTR;

    //�'�户类型
    private String accmod = NULLSTR;

    //收支类型
    private String sztyp = NULLSTR;

    //发报行原始编号
    private String sndbanref = NULLSTR;

    //汇款人帐号
    private String orcact = NULLSTR;

    //收款人帐号
    private String pyeact = NULLSTR;

    //同名划转标志
    private String tsnflg = NULLSTR;

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

    //是否需要核验
    private String ischktyp = NULLSTR;

    //高风险复核柜员
    private String rskrelusr = NULLSTR;

    //高风险�'明信息
    private String rskexp = NULLSTR;

    //收款人常驻国家（地区）代码
    private String pyectycod = NULLSTR;

    //付款人常驻国家（地区）代码
    private String orcctycod = NULLSTR;

    //UETR
    private String uetr = NULLSTR;

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

    //电商汇款或海运费标记
    private String ehtyp = NULLSTR;

    //交易主体
    private String manbod = NULLSTR;
    //渠道类型
    private String channel = NULLSTR;
    //渠道业务编号
    private String chnref = NULLSTR;

    //前端业务编号(发起端)
    private String iniref = NULLSTR;
}
