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

import com.fasterxml.jackson.annotation.JsonInclude;

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

/**
 * E200 统一名单筛查请求对象
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReqE200 {

    /**
     * 业务系统流水号
     */
    public String TRANS_ID;

    /**
     * 业务编号
     */
    public String TRANS_NO;

    /**
     * 查询类型
     */
    public String QUERY_TYPE;

    /**
     * 发起方
     */
    public String SYSTEM_ID;

    /**
     * 机构代码
     */
    public String ORG_CODE;

    /**
     * 交易代码
     */
    public String TRANS_CODE;

    /**
     * 操作员
     */
    public String OPERATOR;

    /**
     * 发起时间
     */
    public String START_TM;

    /**
     * 报文类型
     */
    public String MESSAGE_TYPE;

    /**
     * 客户号
     */
    public String CUST_NO;

    /**
     * 借贷标志
     */
    public String LOAN_FLAG;

    /**
     * 币种
     */
    public String TRANS_CUR;

    /**
     * 金额
     */
    public String TRANS_AMT;

    /**
     * 案例编号
     */
    public String CASE_NO;

    /**
     * 预留字段1
     */
    public String RESERVE1;

    /**
     * 预留字段2
     */
    public String RESERVE2;

    public List<CustsList> CUSTS = new ArrayList();

    public List<TransList> TRANS= new ArrayList();

    public List<TagsList> TAGS= new ArrayList();
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class CustsList{

        /**
         * 监控人员角色
         */
        public String REL_TYPE;

        /**
         * 客户类型
         */
        public String CUST_TYPE;

        /**
         * 客户名称
         */
        public String CUST_NAME;

        /**
         * 客户简称
         */
        public String ORG_SHORT_NAME;

        /**
         * 英文名称
         */
        public String ORG_EN_NAME;

        /**
         * 性别
         */
        public String GENDER;


        /**
         * 国籍/注册国家（地区）
         */
        public String NAT;

        /**
         * 出生日期
         */
        public String BIRTH_DATE;

        /**
         * 证件信息
         */
        public String CE_LIST;

        /**
         * 地址信息
         */
        public String ADDR_LIST;

        /**
         * 预留字段3
         */
        public String RESERVE3;

        /**
         * 预留字段4
         */
        public String RESERVE4;


    };
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class TransList{
        /**
         * 筛查对象类型
         */
        public String REL_TYPE;

        /**
         * 客户类型
         */
        public String CUST_TYPE;

        /**
         * 客户名称
         */
        public String CUST_NAME;

        /**
         * 客户简称
         */
        public String ORG_SHORT_NAME;

        /**
         * 英文名称
         */
        public String ORG_EN_NAME;

        /**
         * 性别
         */
        public String GENDER;

        /**
         * 国籍/注册国家（地区）
         */
        public String NAT;

        /**
         * 汇往国家（地区）/汇入国家（地区）
         */
        public String T_NAT;

        /**
         * 出生日期
         */
        public String BIRTH_DATE;

        /**
         * BIC码
         */
        public String SWIFT_NO;

        /**
         * 账号
         */
        public String ACCOUNT_NO;

        /**
         * 证件信息
         */
        public String CE_LIST;

        /**
         * 地址信息
         */
        public String ADDR_LIST;

        /**
         * 预留字段5
         */
        public String RESERVE5;

        /**
         * 预留字段6
         */
        public String RESERVE6;

    }
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public static class TagsList{

        /**
         * 栏位
         */
        public String TAG;

        /**
         * 栏位筛查类型
         */
        public String TSCREEN_TYPE;

        /**
         * 栏位内容
         */
        public String TAG_DETAIL;

        /**
         * 预留字段7
         */
        public String RESERVE7;

        /**
         * 预留字段8
         */
        public String RESERVE8;

    }

    public ReqE200() {
    }

    public ReqE200(String TRANS_ID, String TRANS_NO, String QUERY_TYPE, String SYSTEM_ID, String ORG_CODE, String TRANS_CODE, String OPERATOR, String START_TM, String MESSAGE_TYPE, String CUST_NO, String LOAN_FLAG, String TRANS_CUR, String TRANS_AMT, String CASE_NO, String RESERVE1, String RESERVE2, List<CustsList> CUSTS, List<TransList> TRANS, List<TagsList> TAGS) {
        this.TRANS_ID = TRANS_ID;
        this.TRANS_NO = TRANS_NO;
        this.QUERY_TYPE = QUERY_TYPE;
        this.SYSTEM_ID = SYSTEM_ID;
        this.ORG_CODE = ORG_CODE;
        this.TRANS_CODE = TRANS_CODE;
        this.OPERATOR = OPERATOR;
        this.START_TM = START_TM;
        this.MESSAGE_TYPE = MESSAGE_TYPE;
        this.CUST_NO = CUST_NO;
        this.LOAN_FLAG = LOAN_FLAG;
        this.TRANS_CUR = TRANS_CUR;
        this.TRANS_AMT = TRANS_AMT;
        this.CASE_NO = CASE_NO;
        this.RESERVE1 = RESERVE1;
        this.RESERVE2 = RESERVE2;
        this.CUSTS = CUSTS;
        this.TRANS = TRANS;
        this.TAGS = TAGS;
    }
}
