package com.brilliance.isc.vo;

import com.brilliance.mda.support.jakson.serialize.BigDecimalSerializeRate;
import com.brilliance.mda.support.jakson.serialize.DecimalLength;
import com.brilliance.isc.common.vo.AbstractCommonVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import static com.brilliance.mda.runtime.mda.Constants.NULLDATE;
import static com.brilliance.mda.runtime.mda.Constants.NULLSTR;

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class CipmodVo extends AbstractCommonVo {
    private String dddbsh = NULLSTR; //  端到端标识号		.trnmod.cipmod.dddbsh
    private String zjg1hh = NULLSTR; //  中介机构1行号		.trnmod.cipmod.zjg1hh
    private String zjg1mc = NULLSTR; //  中介机构1名称		.trnmod.cipmod.zjg1mc
    private String zjg2hh = NULLSTR; //  中介机构2行号		.trnmod.cipmod.zjg2hh
    private String zjg2mc = NULLSTR; //  中介机构2名称		.trnmod.cipmod.zjg2mc
    private String dafnzh = NULLSTR; //  借记记账账号		.trnmod.cipmod.dafnzh
    private String dafnmc = NULLSTR; //  借记记账名称		.trnmod.cipmod.dafnmc
    private String recsehbch = NULLSTR; //  收款间接参与者行号		.trnmod.cipmod.recsehbch
    private String staonebch = NULLSTR; //  付款直接参与者行号		.trnmod.cipmod.staonebch
    private String recsehbchnam = NULLSTR; //  收款间接参与者名称		.trnmod.cipmod.recsehbchnam
    private String staonebchnam = NULLSTR; //  付款直接参与者名称		.trnmod.cipmod.staonebchnam
    private String fuynh2 = NULLSTR; //  附言2		.trnmod.cipmod.fuynh2
    private String fuynh3 = NULLSTR; //  附言3		.trnmod.cipmod.fuynh3
    private String fuynh4 = NULLSTR; //  附言4		.trnmod.cipmod.fuynh4
    private String skrdz2 = NULLSTR; //  收款人地址2		.trnmod.cipmod.skrdz2
    private String skrdz3 = NULLSTR; //  收款人地址3		.trnmod.cipmod.skrdz3
    private String skrdz4 = NULLSTR; //  收款人地址4		.trnmod.cipmod.skrdz4
    private String skrdz5 = NULLSTR; //  收款人地址5		.trnmod.cipmod.skrdz5
    private String fkrdz2 = NULLSTR; //  付款人地址2		.trnmod.cipmod.fkrdz2
    private String fkrdz3 = NULLSTR; //  付款人地址3		.trnmod.cipmod.fkrdz3
    private String fkrdz4 = NULLSTR; //  付款人地址4		.trnmod.cipmod.fkrdz4
    private String fkrdz5 = NULLSTR; //  付款人地址5		.trnmod.cipmod.fkrdz5
    private String pyebchkey = NULLSTR; //  收款行开户行行号		.trnmod.cipmod.pyebchkey
    private String pyebchnam = NULLSTR; //  收款行开户行名称		.trnmod.cipmod.pyebchnam
    private String stasehbch = NULLSTR; //  付款间接参与者行号		.trnmod.cipmod.stasehbch
    private String stasehbchnam = NULLSTR; //  付款间接参与者名称		.trnmod.cipmod.stasehbchnam
    private String fkrdz6 = NULLSTR; //  付款人地址6		.trnmod.cipmod.fkrdz6
    private String fkrdz7 = NULLSTR; //  付款人地址7		.trnmod.cipmod.fkrdz7
    private String skrdz6 = NULLSTR; //  收款人地址6		.trnmod.cipmod.skrdz6
    private String skrdz7 = NULLSTR; //  收款人地址7		.trnmod.cipmod.skrdz7
    private String covflg = NULLSTR; //  112COV		.trnmod.cipmod.covflg
    private String fufeih = NULLSTR; //  付费行号1		.trnmod.cipmod.fufeih
    private String ffeih2 = NULLSTR; //  付费行号2		.trnmod.cipmod.ffeih2
    private String fkrkhh = NULLSTR; //  付款行开户行行号		.trnmod.cipmod.fkrkhh
    private String fukrhm = NULLSTR; //  付款行开户行名称		.trnmod.cipmod.fukrhm
    private String feecod = NULLSTR; //  费用承担方		.trnmod.cipmod.feecod
    private BigDecimal feiyon = BigDecimal.ZERO; //  费用1		.trnmod.cipmod.feiyon
    private BigDecimal feiyn2 = BigDecimal.ZERO; //  费用2		.trnmod.cipmod.feiyn2
    private String fuyns1 = NULLSTR; //  致收款人银行附言1		.trnmod.cipmod.fuyns1
    private String fuyns2 = NULLSTR; //  致收款人银行附言2		.trnmod.cipmod.fuyns2
    private String fuyns3 = NULLSTR; //  致收款人银行附言3		.trnmod.cipmod.fuyns3
    private String fuyns4 = NULLSTR; //  致收款人银行附言4		.trnmod.cipmod.fuyns4
    private String fyo1bz = NULLSTR; //  费用1币种		.trnmod.cipmod.fyo1bz
    private String fyo2bz = NULLSTR; //  费用2币种		.trnmod.cipmod.fyo2bz
    private String fkhkhh = NULLSTR; //  付款行行号		.trnmod.cipmod.fkhkhh
    private String fkkhmc = NULLSTR; //  付款行行名		.trnmod.cipmod.fkkhmc
    private String fkkhzh = NULLSTR; //  付款行账号		.trnmod.cipmod.fkkhzh
    private String fkhdzh = NULLSTR; //  付款行地址		.trnmod.cipmod.fkhdzh
    private String skkhhh = NULLSTR; //  收款行行号		.trnmod.cipmod.skkhhh
    private String skkhhm = NULLSTR; //  收款行行名		.trnmod.cipmod.skkhhm
    private String skkhzh = NULLSTR; //  收款行账号		.trnmod.cipmod.skkhzh
    private String skkhdz = NULLSTR; //  收款行地址		.trnmod.cipmod.skkhdz
    private String ddbhao = NULLSTR; //  订单编号		.trnmod.cipmod.ddbhao
    private String ddmisu = NULLSTR; //  订单描述		.trnmod.cipmod.ddmisu
    private String fkrzhj = NULLSTR; //  付款人组织机构代码		.trnmod.cipmod.fkrzhj
    private String fkrzjh = NULLSTR; //  付款人证件号码		.trnmod.cipmod.fkrzjh
    private String fkrzgj = NULLSTR; //  付款人常驻国家（地区）代码		.trnmod.cipmod.fkrzgj
    private String fkreid = NULLSTR; //  付款人EID		.trnmod.cipmod.fkreid
    private String fkfyzh = NULLSTR; //  付款非银行支付机构帐号		.trnmod.cipmod.fkfyzh
    private String fkfdz1 = NULLSTR; //  付款非银行支付机构地址1		.trnmod.cipmod.fkfdz1
    private String fkfdz2 = NULLSTR; //  付款非银行支付机构地址2		.trnmod.cipmod.fkfdz2
    private String fkfdz3 = NULLSTR; //  付款非银行支付机构地址3		.trnmod.cipmod.fkfdz3
    private String fkfdz4 = NULLSTR; //  付款非银行支付机构地址4		.trnmod.cipmod.fkfdz4
    private String fkfdz5 = NULLSTR; //  付款非银行支付机构地址5		.trnmod.cipmod.fkfdz5
    private String fkfdz6 = NULLSTR; //  付款非银行支付机构地址6		.trnmod.cipmod.fkfdz6
    private String fkfdz7 = NULLSTR; //  付款非银行支付机构地址7		.trnmod.cipmod.fkfdz7
    private String skrzhj = NULLSTR; //  收款人组织机构代码		.trnmod.cipmod.skrzhj
    private String skrzjh = NULLSTR; //  收款人证件号码		.trnmod.cipmod.skrzjh
    private String skrzgj = NULLSTR; //  收款人常驻国家（地区）代码		.trnmod.cipmod.skrzgj
    private String skreid = NULLSTR; //  收款人EID		.trnmod.cipmod.skreid
    private String skfyzh = NULLSTR; //  收款非银行支付机构帐号		.trnmod.cipmod.skfyzh
    private String skfdz1 = NULLSTR; //  收款非银行支付机构地址1		.trnmod.cipmod.skfdz1
    private String skfdz2 = NULLSTR; //  收款非银行支付机构地址2		.trnmod.cipmod.skfdz2
    private String skfdz3 = NULLSTR; //  收款非银行支付机构地址3		.trnmod.cipmod.skfdz3
    private String skfdz4 = NULLSTR; //  收款非银行支付机构地址4		.trnmod.cipmod.skfdz4
    private String skfdz5 = NULLSTR; //  收款非银行支付机构地址5		.trnmod.cipmod.skfdz5
    private String skfdz6 = NULLSTR; //  收款非银行支付机构地址6		.trnmod.cipmod.skfdz6
    private String skfdz7 = NULLSTR; //  收款非银行支付机构地址7		.trnmod.cipmod.skfdz7
    private String ddmsu1 = NULLSTR; //  订单描述1		.trnmod.cipmod.ddmsu1
    private String ddmsu2 = NULLSTR; //  订单描述2		.trnmod.cipmod.ddmsu2
    private String ddmsu3 = NULLSTR; //  订单描述3		.trnmod.cipmod.ddmsu3
    private String ddmsu4 = NULLSTR; //  订单描述4		.trnmod.cipmod.ddmsu4
    private String ddmsu5 = NULLSTR; //  订单描述5		.trnmod.cipmod.ddmsu5
    private String ddmsu6 = NULLSTR; //  订单描述6		.trnmod.cipmod.ddmsu6
    private String ddmsu7 = NULLSTR; //  订单描述7		.trnmod.cipmod.ddmsu7
    private String ddmsu8 = NULLSTR; //  订单描述8		.trnmod.cipmod.ddmsu8
    private String skrzjl = NULLSTR; //  收款人证件类型		.trnmod.cipmod.skrzjl
    private String fkrzjl = NULLSTR; //  付款人证件类型		.trnmod.cipmod.fkrzjl
    private String cfkfzh = NULLSTR; //  COV付款非银行支付机构帐号		.trnmod.cipmod.cfkfzh
    private String cffdz1 = NULLSTR; //  COV付款非银行支付机构地址1		.trnmod.cipmod.cffdz1
    private String cffdz2 = NULLSTR; //  COV付款非银行支付机构地址2		.trnmod.cipmod.cffdz2
    private String cffdz3 = NULLSTR; //  COV付款非银行支付机构地址3		.trnmod.cipmod.cffdz3
    private String cffdz4 = NULLSTR; //  COV付款非银行支付机构地址4		.trnmod.cipmod.cffdz4
    private String cffdz5 = NULLSTR; //  COV付款非银行支付机构地址5		.trnmod.cipmod.cffdz5
    private String cffdz6 = NULLSTR; //  COV付款非银行支付机构地址6		.trnmod.cipmod.cffdz6
    private String cffdz7 = NULLSTR; //  COV付款非银行支付机构地址7		.trnmod.cipmod.cffdz7
    private String cfkrzj = NULLSTR; //  COV付款人组织机构代码		.trnmod.cipmod.cfkrzj
    private String cfkzjh = NULLSTR; //  COV付款人证件号码		.trnmod.cipmod.cfkzjh
    private String cfkrgj = NULLSTR; //  COV付款人常驻国家（地区）代码		.trnmod.cipmod.cfkrgj
    private String cfkeid = NULLSTR; //  COV付款人EID		.trnmod.cipmod.cfkeid
    private String cskfzh = NULLSTR; //  COV收款非银行支付机构帐号		.trnmod.cipmod.cskfzh
    private String csfdz1 = NULLSTR; //  COV收款非银行支付机构地址1		.trnmod.cipmod.csfdz1
    private String csfdz2 = NULLSTR; //  COV收款非银行支付机构地址2		.trnmod.cipmod.csfdz2
    private String csfdz3 = NULLSTR; //  COV收款非银行支付机构地址3		.trnmod.cipmod.csfdz3
    private String csfdz4 = NULLSTR; //  COV收款非银行支付机构地址4		.trnmod.cipmod.csfdz4
    private String csfdz6 = NULLSTR; //  COV收款非银行支付机构地址6		.trnmod.cipmod.csfdz6
    private String csfdz7 = NULLSTR; //  COV收款非银行支付机构地址7		.trnmod.cipmod.csfdz7
    private String cskrzj = NULLSTR; //  COV收款人组织机构代码		.trnmod.cipmod.cskrzj
    private String csfdz5 = NULLSTR; //  COV收款非银行支付机构地址5		.trnmod.cipmod.csfdz5
    private String cskzjh = NULLSTR; //  COV收款人证件号码		.trnmod.cipmod.cskzjh
    private String cskrgj = NULLSTR; //  COV收款人常驻国家（地区）代码		.trnmod.cipmod.cskrgj
    private String cskeid = NULLSTR; //  COV收款人EID		.trnmod.cipmod.cskeid
    private String cskzjl = NULLSTR; //  COV收款人证件类型		.trnmod.cipmod.cskzjl
    private String cfkzjl = NULLSTR; //  COV付款人证件类型		.trnmod.cipmod.cfkzjl
    private String fqzyhh = NULLSTR; //  发起直接参与者行号		.trnmod.cipmod.fqzyhh
    private String jszyhh = NULLSTR; //  接收直接参与者行号		.trnmod.cipmod.jszyhh
    private String mxywbs = NULLSTR; //  明细业务总笔数		.trnmod.cipmod.mxywbs
    private String mxywje = NULLSTR; //  明细业务总金额		.trnmod.cipmod.mxywje
    private String mxywsh = NULLSTR; //  明细业务标识号		.trnmod.cipmod.mxywsh
    private String cfkkhh = NULLSTR; //  COV付款人开户行行号		.trnmod.cipmod.cfkkhh
    private String cfkkhm = NULLSTR; //  COV付款人开户行名称\COV付款非银行支付机构名称		.trnmod.cipmod.cfkkhm
    private String cfkrzh = NULLSTR; //  COV付款人账号		.trnmod.cipmod.cfkrzh
    private String cfkrmc = NULLSTR; //  COV付款人名称		.trnmod.cipmod.cfkrmc
    private String cskkhh = NULLSTR; //  COV收款人开户行行号		.trnmod.cipmod.cskkhh
    private String cskkhm = NULLSTR; //  COV收款人开户行名称\COV收款非银行支付机构名称		.trnmod.cipmod.cskkhm
    private String cskrzh = NULLSTR; //  COV收款人账号		.trnmod.cipmod.cskrzh
    private String czjjg1 = NULLSTR; //  COV中介机构1		.trnmod.cipmod.czjjg1
    private String czj1mc = NULLSTR; //  COV中介机构1名称		.trnmod.cipmod.czj1mc
    private String covfuy = NULLSTR; //  COV附言1		.trnmod.cipmod.covfuy
    private String covfy2 = NULLSTR; //  COV附言2		.trnmod.cipmod.covfy2
    private String covfy3 = NULLSTR; //  COV附言3		.trnmod.cipmod.covfy3
    private String covfy4 = NULLSTR; //  COV附言4		.trnmod.cipmod.covfy4
    private String cfkdz1 = NULLSTR; //  COV付款人地址1		.trnmod.cipmod.cfkdz1
    private String cfkdz2 = NULLSTR; //  COV付款人地址2		.trnmod.cipmod.cfkdz2
    private String cfkdz3 = NULLSTR; //  COV付款人地址3		.trnmod.cipmod.cfkdz3
    private String cfkdz4 = NULLSTR; //  COV付款人地址4		.trnmod.cipmod.cfkdz4
    private String cfkdz5 = NULLSTR; //  COV付款人地址5		.trnmod.cipmod.cfkdz5
    private String cfkdz6 = NULLSTR; //  COV付款人地址6		.trnmod.cipmod.cfkdz6
    private String cfkdz7 = NULLSTR; //  COV付款人地址7		.trnmod.cipmod.cfkdz7
    private String cskdz1 = NULLSTR; //  COV收款人地址1		.trnmod.cipmod.cskdz1
    private String cskdz2 = NULLSTR; //  COV收款人地址2		.trnmod.cipmod.cskdz2
    private String cskdz3 = NULLSTR; //  COV收款人地址3		.trnmod.cipmod.cskdz3
    private String cskdz4 = NULLSTR; //  COV收款人地址4		.trnmod.cipmod.cskdz4
    private String cskdz5 = NULLSTR; //  COV收款人地址5		.trnmod.cipmod.cskdz5
    private String cskdz6 = NULLSTR; //  COV收款人地址6		.trnmod.cipmod.cskdz6
    private String cskdz7 = NULLSTR; //  COV收款人地址7		.trnmod.cipmod.cskdz7
    private String cskrmc = NULLSTR; //  COV收款人名称		.trnmod.cipmod.cskrmc
    private String reconebch = NULLSTR;//收款直接参与者行号   .trnmod.reconebch
    private String reconebchnam = NULLSTR;//收款直接参与者名称  .trnmod.reconebchnam
    private String commen = NULLSTR;//附言  .trnmod.commen
    private String bustyp = NULLSTR;//业务种类  .trnmod.bustyp
    //起始日
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date dlgdat = NULLDATE;

    //付款人账号
    private String orcact;
    //付款人真实账号 cips报文显示
    private String relorcact;
    //付款人名称
    private String orcnam;
    //付款人地址
    private String orcadr;
    //收款人账号
    private String pyeact;
    //收款人名称
    private String pyenam;
    //收款人地址
    private String pyeadr;

    //原始币种
    private String cur33b = NULLSTR;
    //原始金额
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal amt33b = BigDecimal.ZERO;

    //hvps-发起行行号
    private String satbch = NULLSTR;
    private String satbchnam = NULLSTR;
}