package com.brilliance.isc.esb.model.ebmp;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

/**
 * 6801 cips汇款中台请求国结付汇申请对外请求对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Req6801 {

    /**
     * 唯一流水号 [0,40]
     */
    public String WYILSH;

    /**
     * 渠道号 [0,3]
     */
    public String QUDHAO;

    /**
     * 第三方支付机构流水号 [0,50]
     */
    public String SHLSH;

    /**
     * 核心机构号 [0,4]
     */
    public String BRANCH;

    /**
     * 报文类型 [0,8]
     */
    public String BWLXDH;

    /**
     * 支付机构ECIF号 [0,10]
     */
    public String ECIFNO;

    /**
     * 手续费账号(原6701交易备用字段1) [0,140]
     */
    public String SHXFZH;

    /**
     * 自动化标识(原6701交易备用字段2) [0,140]
     */
    public String ZDHBSH;

    /**
     * 收款方常驻国家地区代码(原6701交易备用字段3) [0,140]
     */
    public String SKFGJD;

    /**
     * 账户识别字段(原6701交易备用字段4) [0,140]
     */
    public String ZHSBZD;

    /**
     * 起息日 [0,8]
     */
    public String QIXIRI;

    /**
     * 借记记账账号 [0,34]
     */
    public String DAFNZH;

    /**
     * 借记记账名称 [0,280]
     */
    public String DAFNMC;

    /**
     * 付款间接参与者行号 [0,35]
     */
    public String FKJJHH;

    /**
     * 付款间接参与者名称 [0,280]
     */
    public String FKJCMC;

    /**
     * 付款直接参与者行号 [0,35]
     */
    public String FKZJHH;

    /**
     * 业务种类 [0,35]
     */
    public String YWZLDM;

    /**
     * 金额 [0,15]
     */
    public String ZHIFJE;

    /**
     * 收款间接参与者行号 [0,35]
     */
    public String SHJJHH;

    /**
     * 收款间接参与者名称 [0,280]
     */
    public String SKJCMC;

    /**
     * 收款直接参与者行号 [0,35]
     */
    public String SHZJHH;

    /**
     * 收款直接参与者名称 [0,280]
     */
    public String SKZCMC;

    /**
     * 费用承担方 [0,4]
     */
    public String FEIYCD;

    /**
     * 费用 [0,15]
     */
    public String FEIYON;

    /**
     * 付费行号 [0,35]
     */
    public String FUFEIH;

    /**
     * 费用2 [0,15]
     */
    public String FEIYN2;

    /**
     * 付费行号2 [0,35]
     */
    public String FFEIH2;

    /**
     * 中介机构1行号 [0,35]
     */
    public String ZJG1HH;

    /**
     * 中介机构1名称 [0,280]
     */
    public String ZJG1MC;

    /**
     * 中介机构2行号 [0,35]
     */
    public String ZJG2HH;

    /**
     * 中介机构2名称 [0,280]
     */
    public String ZJG2MC;

    /**
     * 附言1 [0,280]
     */
    public String FUYNH1;

    /**
     * 附言2 [0,280]
     */
    public String FUYNH2;

    /**
     * 附言3 [0,280]
     */
    public String FUYNH3;

    /**
     * 附言4 [0,280]
     */
    public String FUYNH4;

    /**
     * 致收款人银行附言1 [0,140]
     */
    public String FUYNS1;

    /**
     * 致收款人银行附言2 [0,140]
     */
    public String FUYNS2;

    /**
     * 致收款人银行附言3 [0,140]
     */
    public String FUYNS3;

    /**
     * 致收款人银行附言4 [0,140]
     */
    public String FUYNS4;

    public List<ItemF68011> F68011 = new ArrayList<>();

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @JsonIgnoreProperties(ignoreUnknown = true)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class ItemF68011 {

        /**
         * 记账标识 [0,1]
         */
        public String SHOFBS;

        /**
         * 付款人账号 [0,34]
         */
        public String FUKRZH;

        /**
         * 付款人名称 [0,280]
         */
        public String FKRMCH;

        /**
         * 付款人地址1 [0,140]
         */
        public String FKRDZ1;

        /**
         * 付款人地址2 [0,140]
         */
        public String FKRDZ2;

        /**
         * 付款人地址3 [0,140]
         */
        public String FKRDZ3;

        /**
         * 付款人地址4 [0,140]
         */
        public String FKRDZ4;

        /**
         * 付款人地址5 [0,140]
         */
        public String FKRDZ5;

        /**
         * 付款人地址6 [0,140]
         */
        public String FKRDZ6;

        /**
         * 付款人地址7 [0,140]
         */
        public String FKRDZ7;

        /**
         * 付款人组织机构代码 [0,35]
         */
        public String FKRZHJ;

        /**
         * 付款人常驻国家（地区）代码 [0,2]
         */
        public String FKRZGJ;

        /**
         * 付款人EID [0,60]
         */
        public String FKREID;

        /**
         * 付款人开户行行号 [0,35]
         */
        public String FKRKHH;

        /**
         * 付款非银行支付机构账号 [0,34]
         */
        public String FKFYZH;

        /**
         * 付款非银行支付机构地址1 [0,140]
         */
        public String FKFDZ1;

        /**
         * 付款非银行支付机构地址2 [0,140]
         */
        public String FKFDZ2;

        /**
         * 付款非银行支付机构地址3 [0,140]
         */
        public String FKFDZ3;

        /**
         * 付款非银行支付机构地址4 [0,140]
         */
        public String FKFDZ4;

        /**
         * 付款非银行支付机构地址5 [0,140]
         */
        public String FKFDZ5;

        /**
         * 付款非银行支付机构地址6 [0,140]
         */
        public String FKFDZ6;

        /**
         * 付款非银行支付机构地址7 [0,140]
         */
        public String FKFDZ7;

        /**
         * 付款人开户行名称（付款非银行支付机构名称） [0,280]
         */
        public String FUKRHM;

        /**
         * 收款人账号 [0,34]
         */
        public String SHKRZH;

        /**
         * 收款人名称 [0,280]
         */
        public String SKRMCH;

        /**
         * 收款人地址1 [0,140]
         */
        public String SKRDZ1;

        /**
         * 收款人地址2 [0,140]
         */
        public String SKRDZ2;

        /**
         * 收款人地址3 [0,140]
         */
        public String SKRDZ3;

        /**
         * 收款人地址4 [0,140]
         */
        public String SKRDZ4;

        /**
         * 收款人地址5 [0,140]
         */
        public String SKRDZ5;

        /**
         * 收款人地址6 [0,140]
         */
        public String SKRDZ6;

        /**
         * 收款人地址7 [0,140]
         */
        public String SKRDZ7;

        /**
         * 收款人常驻国家（地区）代码 [0,2]
         */
        public String SKRZGJ;

        /**
         * 收款人EID [0,60]
         */
        public String SKREID;

        /**
         * 收款人开户行行号 [0,35]
         */
        public String SKRKHH;

        /**
         * 收款非银行支付机构账号 [0,34]
         */
        public String SKFYZH;

        /**
         * 收款非银行支付机构地址1 [0,140]
         */
        public String SKFDZ1;

        /**
         * 收款非银行支付机构地址2 [0,140]
         */
        public String SKFDZ2;

        /**
         * 收款非银行支付机构地址3 [0,140]
         */
        public String SKFDZ3;

        /**
         * 收款非银行支付机构地址4 [0,140]
         */
        public String SKFDZ4;

        /**
         * 收款非银行支付机构地址5 [0,140]
         */
        public String SKFDZ5;

        /**
         * 收款非银行支付机构地址6 [0,140]
         */
        public String SKFDZ6;

        /**
         * 收款非银行支付机构地址7 [0,140]
         */
        public String SKFDZ7;

        /**
         * 收款人开户行名称（收款非银行支付机构名称） [0,280]
         */
        public String SHKRHM;

        /**
         * 订单描述1 [0,70]
         */
        public String DDMSU1;

        /**
         * 订单描述2 [0,70]
         */
        public String DDMSU2;

        /**
         * 订单描述3 [0,70]
         */
        public String DDMSU3;

        /**
         * 订单描述4 [0,70]
         */
        public String DDMSU4;

        /**
         * 订单描述5 [0,70]
         */
        public String DDMSU5;

        /**
         * 订单描述6 [0,70]
         */
        public String DDMSU6;

        /**
         * 订单描述7 [0,70]
         */
        public String DDMSU7;

        /**
         * 订单描述8 [0,70]
         */
        public String DDMSU8;

        /**
         * 订单编号 [0,35]
         */
        public String DDBHAO;

    }
}
