package com.xingxi.unifiedpay.bean;

import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.io.Serializable;


@Getter
@Setter
public class BiandanUnifiedpayCreateSubMchApplyRequest extends BaseBiandanUnifiedpayRequest<BiandanUnifiedpayCreateSubMchApplyResponse>{

    /**
     * <pre>
     * 字段名：业务申请编号
     * 变量名：out_request_no
     * 是否必填：是
     * 类型：string(124)
     * 描述：
     *  1、服务商自定义的商户唯一编号。
     *  2、每个编号对应一个申请单，每个申请单审核通过后会生成一个微信支付商户号。
     *  3、若申请单被驳回，可填写相同的“业务申请编号”，即可覆盖修改原申请单信息 。
     *  示例值：APPLYMENT_00000000001
     * </pre>
     */
    private String outRequestNo;

    /**
     * <pre>
     * 字段名：主体类型
     * 变量名：organization_type
     * 是否必填：是
     * 类型：string(4)
     * 描述：
     *  枚举值：
     *  2401：小微商户，指无营业执照的商户。
     *  4：个体工商户，营业执照上的主体类型一般为个体户、个体工商户、个体经营。
     *  2：企业，营业执照上的主体类型一般为有限公司、有限责任公司。
     *  3：党政、机关及事业单位，包括国内各级、各类政府机构、事业单位等（如：公安、党团、司法、交通、旅游、工商税务、市政、医疗、教育、学校等机构）。
     *  1708：其他组织，不属于企业、政府/事业单位的组织机构（如社会团体、民办非企业、基金会），要求机构已办理组织机构代码证。
     *  示例值：2401
     * </pre>
     */
    private String organizationType;

    /**
     * <pre>
     * 字段名：+营业执照/登记证书信息
     * 变量名：business_license_info
     * 是否必填：条件选填
     * 类型：object
     * 描述：
     *  1、主体为“小微”时，不填。
     *  2、主体为“个体工商户/企业”时，请上传营业执照。
     *  3、主体为“党政、机关及事业单位/其他组织”时，请上传登记证书。
     * </pre>
     */
    private BiandanUnifiedpayCreateSubMchApplyRequest.BusinessLicenseInfo businessLicenseInfo;

    /**
     * <pre>
     * 字段名：+组织机构代码证信息
     * 变量名：organization_cert_info
     * 是否必填：条件选填
     * 类型：object
     * 描述：主体为企业/党政、机关及事业单位/其他组织，且证件号码不是18位时必填。
     * </pre>
     */
    private BiandanUnifiedpayCreateSubMchApplyRequest.OrganizationCertInfo organizationCertInfo;

    /**
     * <pre>
     * 字段名：经营者/法人证件类型
     * 变量名：id_doc_type
     * 是否必填：否
     * 类型：string(64)
     * 描述：
     *  1、主体为“小微”，只可选择：身份证。
     *  2、主体为“个体户/企业/党政、机关及事业单位/其他组织”，可选择：任一证件类型。
     *  3、若没有填写，系统默认选择：身份证。
     *  枚举值:
     *  IDENTIFICATION_TYPE_MAINLAND_IDCARD：中国大陆居民-身份证
     *  IDENTIFICATION_TYPE_OVERSEA_PASSPORT：其他国家或地区居民-护照
     *  IDENTIFICATION_TYPE_HONGKONG：中国香港居民–来往内地通行证
     *  IDENTIFICATION_TYPE_MACAO：中国澳门居民–来往内地通行证
     *  IDENTIFICATION_TYPE_TAIWAN：中国台湾居民–来往大陆通行证
     *  示例值：IDENTIFICATION_TYPE_MACAO
     * </pre>
     */
    private String idDocType;

    /**
     * <pre>
     * 字段名：+经营者/法人身份证信息
     * 变量名：id_card_info
     * 是否必填：条件选填
     * 类型：object
     * 描述：
     *  请填写经营者/法人的身份证信息
     *  证件类型为“身份证”时填写。
     *
     * </pre>
     */

    private BiandanUnifiedpayCreateSubMchApplyRequest.IdCardInfo idCardInfo;

    /**
     * <pre>
     * 字段名：+经营者/法人其他类型证件信息
     * 变量名：id_doc_info
     * 是否必填：条件选填
     * 类型：object
     * 描述：证件类型为“来往内地通行证、来往大陆通行证、护照”时填写。
     * </pre>
     */

    private BiandanUnifiedpayCreateSubMchApplyRequest.IdDocInfo idDocInfo;

    /**
     * <pre>
     * 字段名：经营者/法人是否为受益人
     * 变量名：owner
     * 是否必填：条件选填
     * 类型：bool
     * 描述：主体类型为企业时，需要填写：1、若经营者/法人是最终受益人，则填写：true。2、若经营者/法人不是最终受益人，则填写：false。
     * 示例值：true
     * </pre>
     */
    private Boolean owner;

    /**
     * <pre>
     * 字段名：是否填写结算账户信息
     * 变量名：need_account_info
     * 是否必填：是
     * 类型：bool
     * 描述：
     *  可根据实际情况，填写“true”或“false”。
     *  1、若为“true”，则需填写结算账户信息。
     *  2、若为“false”，则无需填写结算账户信息。
     *  示例值：true
     * </pre>
     */
    private Boolean needAccountInfo;

    /**
     * <pre>
     * 字段名：+结算账户信息
     * 变量名：account_info
     * 是否必填：条件选填
     * 类型：object
     * 描述：若"是否填写结算账户信息"填写为“true”, 则必填，填写为“false”不填 。
     * </pre>
     */
    private BiandanUnifiedpayCreateSubMchApplyRequest.AccountInfo accountInfo;

    /**
     * <pre>
     * 字段名：+超级管理员信息
     * 变量名：contact_info
     * 是否必填：是
     * 类型：object
     * 描述：
     *  请填写店铺的超级管理员信息。
     *  超级管理员需在开户后进行签约，并可接收日常重要管理信息和进行资金操作，请确定其为商户法定代表人或负责人。
     * </pre>
     */
    private BiandanUnifiedpayCreateSubMchApplyRequest.ContactInfo contactInfo;

    /**
     * <pre>
     * 字段名：+店铺信息
     * 变量名：sales_scene_info
     * 是否必填：是
     * 类型：object
     * 描述：请填写店铺信息
     * </pre>
     */
    private BiandanUnifiedpayCreateSubMchApplyRequest.SalesSceneInfo salesSceneInfo;

    /**
     * <pre>
     * 字段名：+结算规则
     * 变量名：settlement_info
     * 是否必填：否
     * 类型：object
     * 描述：请填写商家的结算费率规则、所属行业等信息。若电商平台未传入，系统将填写默认值
     * </pre>
     */
    private BiandanUnifiedpayCreateSubMchApplyRequest.SettlementInfo settlementInfo;

    /**
     * <pre>
     * 字段名：商户简称
     * 变量名：merchant_shortname
     * 是否必填：是
     * 类型：string(64)
     * 描述：
     *  UTF-8格式，中文占3个字节，即最多16个汉字长度。将在支付完成页向买家展示，需与商家的实际售卖商品相符 。
     *  示例值：腾讯
     * </pre>
     */
    private String merchantShortname;

    /**
     * <pre>
     * 字段名：特殊资质
     * 变量名：qualifications
     * 是否必填：否
     * 类型：string(1024)
     * 描述：
     *  1、若店铺业务包含互联网售药，则需上传特殊资质-《互联网药品交易服务证》。
     *  2、最多可上传5张照片，请填写通过图片上传接口预先上传图片生成好的MediaID 。
     *  示例值：[\"jTpGmxUX3FBWVQ5NJInE4d2I6_H7I4\"]
     * </pre>
     */
    private String qualifications;

    /**
     * <pre>
     * 字段名：补充材料
     * 变量名：business_addition_pics
     * 是否必填：否
     * 类型：string(1024)
     * 描述：
     *   最多可上传5张照片，请填写通过图片上传接口预先上传图片生成好的MediaID 。
     *  示例值：[\"jTpGmg05InE4d2I6_H7I4\"]
     * </pre>
     */
    private String businessAdditionPics;

    /**
     * <pre>
     * 字段名：补充说明
     * 变量名：business_addition_desc
     * 是否必填：否
     * 类型：string(256)
     * 描述：
     *   可填写512字以内 。
     *  示例值：特殊情况，说明原因
     * </pre>
     */
    private String businessAdditionDesc;

    @Data
    @NoArgsConstructor
    public static class BusinessLicenseInfo implements Serializable {
        /**
         * <pre>
         * 字段名：证件扫描件
         * 变量名：business_license_copy
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、主体为“个体工商户/企业”时，请上传营业执照的证件图片。
         *  2、主体为“党政、机关及事业单位/其他组织”时，请上传登记证书的证件图片。
         *  3、可上传1张图片，请填写通过图片上传接口预先上传图片生成好的MediaID 。
         *  4、图片要求：
         *  （1）请上传证件的彩色扫描件或彩色数码拍摄件，黑白复印件需加盖公章（公章信息需完整） 。
         *  （2）不得添加无关水印（非微信支付商户申请用途的其他水印）。
         *  （3）需提供证件的正面拍摄件，完整、照面信息清晰可见。信息不清晰、扭曲、压缩变形、反光、不完整均不接受。
         *  （4）不接受二次剪裁、翻拍、PS的证件照片。
         *  示例值： 47ZC6GC-vnrbEny__Ie_An5-tCpqxucuxi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
         * </pre>
         */
        private String businessLicenseCopy;

        /**
         * <pre>
         * 字段名：证件注册号
         * 变量名：business_license_number
         * 是否必填：是
         * 类型：string(18)
         * 描述：
         *  1、主体为“个体工商户/企业”时，请填写营业执照上的注册号/统一社会信用代码，须为15位数字或 18位数字|大写字母。
         *  2、主体为“党政、机关及事业单位/其他组织”时，请填写登记证书的证书编号。
         *  示例值：123456789012345678
         *  特殊规则：长度最小15个字节
         * </pre>
         */
        private String businessLicenseNumber;

        /**
         * <pre>
         * 字段名：商户名称
         * 变量名：merchant_name
         * 是否必填：是
         * 类型：string(128)
         * 描述：
         *  1、请填写营业执照/登记证书的商家名称，2~110个字符，支持括号 。
         *  2、个体工商户/党政、机关及事业单位，不能以“公司”结尾。
         *  3、个体工商户，若营业执照上商户名称为空或为“无”，请填写"个体户+经营者姓名"，如“个体户张三” 。
         *  示例值：腾讯科技有限公司
         * </pre>
         */
        private String merchantName;

        /**
         * <pre>
         * 字段名：经营者/法定代表人姓名
         * 变量名：legal_person
         * 是否必填：是
         * 类型：string(128)
         * 描述：
         *  请填写证件的经营者/法定代表人姓名
         *  示例值：张三
         * </pre>
         */
        private String legalPerson;

        /**
         * <pre>
         * 字段名：注册地址
         * 变量名：company_address
         * 是否必填：条件选填
         * 类型：string(128)
         * 描述：
         *  主体为“党政、机关及事业单位/其他组织”时必填，请填写登记证书的注册地址。
         *  示例值：深圳南山区科苑路
         * </pre>
         */
        private String companyAddress;

        /**
         * <pre>
         * 字段名：营业期限
         * 变量名：business_time
         * 是否必填：条件选填
         * 类型：string(256)
         * 描述：
         *  1、主体为“党政、机关及事业单位/其他组织”时必填，请填写证件有效期。
         *  2、若证件有效期为长期，请填写：长期。
         *  3、结束时间需大于开始时间。
         *  4、有效期必须大于60天，即结束时间距当前时间需超过60天。
         *  示例值：[\"2014-01-01\",\"长期\"]
         * </pre>
         */
        private String businessTime;

    }

    @Data
    @NoArgsConstructor
    public static class OrganizationCertInfo implements Serializable {
        /**
         * <pre>
         * 字段名：组织机构代码证照片
         * 变量名：organization_copy
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  可上传1张图片，请填写通过图片上传接口预先上传图片生成好的MediaID。
         *  示例值：vByf3Gjm7KE53JXv\prrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
         * </pre>
         */
        private String organizationCopy;

        /**
         * <pre>
         * 字段名：组织机构代码
         * 变量名：organization_number
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、请填写组织机构代码证上的组织机构代码。
         *  2、可填写9或10位 数字|字母|连字符。
         *  示例值：12345679-A
         * </pre>
         */
        private String organizationNumber;

        /**
         * <pre>
         * 字段名：组织机构代码有效期限
         * 变量名：organization_time
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、请填写组织机构代码证的有效期限，注意参照示例中的格式。
         *  2、若证件有效期为长期，请填写：长期。
         *  3、结束时间需大于开始时间。
         *  4、有效期必须大于60天，即结束时间距当前时间需超过60天。
         *  示例值：[\"2014-01-01\",\"长期\"]
         * </pre>
         */
        private String organizationTime;

    }

    @Data
    @NoArgsConstructor
    public static class IdCardInfo implements Serializable {
        /**
         * <pre>
         * 字段名：身份证人像面照片
         * 变量名：id_card_copy
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、请上传经营者/法定代表人的身份证人像面照片。
         *  2、可上传1张图片，请填写通过图片上传接口预先上传图片生成好的MediaID。
         *  示例值：xpnFuAxhBTEO_PvWkfSCJ3zVIn001D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
         * </pre>
         */
        private String idCardCopy;

        /**
         * <pre>
         * 字段名：身份证国徽面照片
         * 变量名：id_card_national
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、请上传经营者/法定代表人的身份证国徽面照片。
         *  2、可上传1张图片，请填写通过图片上传接口预先上传图片生成好的MediaID 。
         *  示例值：vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
         * </pre>
         */
        private String idCardNational;

        /**
         * <pre>
         * 字段名：身份证姓名
         * 变量名：id_card_name
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、请填写经营者/法定代表人对应身份证的姓名，2~30个中文字符、英文字符、符号。
         *  2、该字段需进行加密处理，加密方法详见敏感信息加密说明。
         *  示例值：pVd1HJ6v/69bDnuC4EL5Kz4jBHLiCa8MRtelw/wDa4SzfeespQO/0kjiwfqdfg==
         *  字段加密:使用APIv3定义的方式加密
         * </pre>
         */
        private String idCardName;

        /**
         * <pre>
         * 字段名：身份证号码
         * 变量名：id_card_number
         * 是否必填：是
         * 类型：string(18)
         * 描述：
         *  1、请填写经营者/法定代表人对应身份证的号码。
         *  2、15位数字或17位数字+1位数字|X ，该字段需进行加密处理，加密方法详见敏感信息加密说明。
         *  示例值：zV+BEmytMNQCqQ8juwEc4P4TG5xzchG/5IL9DBd+Z0zZXkw==4
         *  特殊规则：长度最小15个字节
         * </pre>
         */
        private String idCardNumber;

        /**
         * <pre>
         * 字段名：身份证有效期限
         * 变量名：id_card_valid_time
         * 是否必填：是
         * 类型：string(128)
         * 描述：
         *  1、请填写身份证有效期的结束时间，注意参照示例中的格式。
         *  2、若证件有效期为长期，请填写：长期。
         *  3、证件有效期需大于60天。
         *  示例值：2026-06-06，长期
         * </pre>
         */
        private String idCardValidTime;

    }

    @Data
    @NoArgsConstructor
    public static class IdDocInfo implements Serializable {
        /**
         * <pre>
         * 字段名：证件姓名
         * 变量名：id_doc_name
         * 是否必填：是
         * 类型：string(128)
         * 描述：
         *  请填写经营者/法人姓名。
         *  示例值：jTpGmxUX3FBWVQ5NJTZvlKX_gdU4LC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
         * </pre>
         */
        private String idDocName;

        /**
         * <pre>
         * 字段名：证件号码
         * 变量名：id_doc_number
         * 是否必填：是
         * 类型：string(128)
         * 描述：
         *  7~11位 数字|字母|连字符 。
         *  示例值：jTpGmxUX3FBWVQ5NJTZvlKX_go0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
         * </pre>
         */
        private String idDocNumber;

        /**
         * <pre>
         * 字段名：证件照片
         * 变量名：id_doc_copy
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、可上传1张图片，请填写通过图片上传接口预先上传图片生成好的MediaID。
         *  2、2M内的彩色图片，格式可为bmp、png、jpeg、jpg或gif 。
         *  示例值：xi-vByf3Gjm7KE53JXvGy9tqZm2XAUf-4KGprrKhpVBDIUv0OF4wFNIO4kqg05InE4d2I6_H7I4
         * </pre>
         */
        private String idDocCopy;

        /**
         * <pre>
         * 字段名：证件结束日期
         * 变量名：doc_period_end
         * 是否必填：是
         * 类型：string(128)
         * 描述：
         *  1、请按照示例值填写。
         *  2、若证件有效期为长期，请填写：长期。
         *  3、证件有效期需大于60天 。
         *  示例值：2020-01-02
         * </pre>
         */
        private String docPeriodEnd;

    }

    @Data
    @NoArgsConstructor
    public static class AccountInfo implements Serializable {
        /**
         * <pre>
         * 字段名：账户类型
         * 变量名：bank_account_type
         * 是否必填：是
         * 类型：string(2)
         * 描述：
         *  1、若主体为企业/党政、机关及事业单位/其他组织，可填写：74-对公账户。
         *  2、若主体为小微，可填写：75-对私账户。
         *  3、若主体为个体工商户，可填写：74-对公账户或75-对私账户。
         *  示例值：75
         * </pre>
         */
        private String bankAccountType;

        /**
         * <pre>
         * 字段名：开户银行
         * 变量名：account_bank
         * 是否必填：是
         * 类型：string(10)
         * 描述：
         *  详细参见开户银行对照表。
         *  示例值：工商银行
         * </pre>
         */
        private String accountBank;

        /**
         * <pre>
         * 字段名：开户名称
         * 变量名：account_name
         * 是否必填：是
         * 类型：string(128)
         * 描述：
         *  1、选择经营者个人银行卡时，开户名称必须与身份证姓名一致。
         *  2、选择对公账户时，开户名称必须与营业执照上的“商户名称”一致。
         *  3、该字段需进行加密处理，加密方法详见敏感信息加密说明。
         *  示例值：AOZdYGISxo4yw96uY1Pk7Rq79Jtt7+I8juwEc4P4TG5xzchG/5IL9DBd+Z0zZXkw==
         * </pre>
         */
        private String accountName;

        /**
         * <pre>
         * 字段名：开户银行省市编码
         * 变量名：bank_address_code
         * 是否必填：是
         * 类型：string(12)
         * 描述：
         *  至少精确到市，详细参见省市区编号对照表。
         *  示例值：110000
         * </pre>
         */
        private String bankAddressCode;

        /**
         * <pre>
         * 字段名：开户银行联行号
         * 变量名：bank_branch_id
         * 是否必填：条件选填
         * 类型：string(64)
         * 描述：
         *  1、17家直连银行无需填写，如为其他银行，开户银行全称（含支行）和开户银行联行号二选一。
         *  2、详细参见开户银行全称（含支行）对照表。
         *  示例值：402713354941
         * </pre>
         */
        private String bankBranchId;

        /**
         * <pre>
         * 字段名：开户银行全称 （含支行)
         * 变量名：bank_name
         * 是否必填：条件选填
         * 类型：string(128)
         * 描述：
         *  1、17家直连银行无需填写，如为其他银行，开户银行全称（含支行）和开户银行联行号二选一。
         *  2、需填写银行全称，如"深圳农村商业银行XXX支行" 。
         *  3、详细参见开户银行全称（含支行）对照表。
         *  示例值：施秉县农村信用合作联社城关信用社
         * </pre>
         */
        private String bankName;

        /**
         * <pre>
         * 字段名：银行帐号
         * 变量名：account_number
         * 是否必填：是
         * 类型：string(128)
         * 描述：
         *  1、数字，长度遵循系统支持的对公/对私卡号长度要求表。
         *  2、该字段需进行加密处理，加密方法详见敏感信息加密说明。
         *  示例值： d+xT+MQCvrLHUVDWv/8MR/dB7TkXLVfSrUxMPZy6jWWYzpRrEEaYQE8ZRGYoeorwC+w==
         * </pre>
         */
        private String accountNumber;

    }

    @Data
    @NoArgsConstructor
    public static class ContactInfo implements Serializable {
        /**
         * <pre>
         * 字段名：超级管理员类型
         * 变量名：contact_type
         * 是否必填：是
         * 类型：string(2)
         * 描述：
         *  1、小微商户，选择：65-法人/经营者。
         *  2、个体工商户/企业/党政、机关及事业单位/其他组织，可选择：65-法人/经营者、66- 负责人。 （负责人：经商户授权办理微信支付业务的人员，授权范围包括但不限于签约，入驻过程需完成账户验证）。
         *  示例值：65
         * </pre>
         */
        private String contactType;

        /**
         * <pre>
         * 字段名：超级管理员姓名
         * 变量名：contact_name
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、若管理员类型为“法人”，则该姓名需与法人身份证姓名一致。
         *  2、若管理员类型为“经办人”，则可填写实际经办人的姓名。
         *  3、该字段需进行加密处理，加密方法详见敏感信息加密说明。
         *  （后续该管理员需使用实名微信号完成签约）
         *  示例值： pVd1HJ6zyvPedzGaV+X3IdGdbDnuC4Eelw/wDa4SzfeespQO/0kjiwfqdfg==
         * </pre>
         */
        private String contactName;

        /**
         * <pre>
         * 字段名：超级管理员身份证件号码
         * 变量名：contact_id_card_number
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、若管理员类型为法人，则该身份证号码需与法人身份证号码一致。若管理员类型为经办人，则可填写实际经办人的身份证号码。
         *  2、可传身份证、来往内地通行证、来往大陆通行证、护照等证件号码。
         *  3、超级管理员签约时，校验微信号绑定的银行卡实名信息，是否与该证件号码一致。
         *  4、该字段需进行加密处理，加密方法详见敏感信息加密说明。
         *  示例值：pVd1HJ6zmty7/mYNxLMpRSvMRtelw/wDa4SzfeespQO/0kjiwfqdfg==
         * </pre>
         */
        private String contactIdCardNumber;

        /**
         * <pre>
         * 字段名：超级管理员手机
         * 变量名：mobile_phone
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、请填写管理员的手机号，11位数字， 用于接收微信支付的重要管理信息及日常操作验证码 。
         *  2、该字段需进行加密处理，加密方法详见敏感信息加密说明。
         *  示例值：pVd1HJ6zyvPedzGaV+X3qtmrq9bb9tPROvwia4ibL+F6mfjbzQIzfb3HHLEjZ4YiNWWNeespQO/0kjiwfqdfg==
         * </pre>
         */
        private String mobilePhone;

        /**
         * <pre>
         * 字段名：超级管理员邮箱
         * 变量名：contact_email
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  1、用于接收微信支付的开户邮件及日常业务通知。
         *  2、需要带@，遵循邮箱格式校验 。
         *  3、该字段需进行加密处理，加密方法详见敏感信息加密说明。
         *  示例值：pVd1HJ6zyvPedzGaV+X3qtmrq9bb9tPROvwia4ibL+FWWNUlw/wDa4SzfeespQO/0kjiwfqdfg==
         * </pre>
         */
        private String contactEmail;

    }

    @Data
    @NoArgsConstructor
    public static class SalesSceneInfo implements Serializable {
        /**
         * <pre>
         * 字段名：店铺名称
         * 变量名：store_name
         * 是否必填：是
         * 类型：string(256)
         * 描述：
         *  请填写店铺全称。
         *  示例值：爱烧烤
         * </pre>
         */
        private String storeName;

        /**
         * <pre>
         * 字段名：店铺链接
         * 变量名：store_url
         * 是否必填：二选一
         * 类型：string(1024)
         * 描述：
         *  1、店铺二维码or店铺链接二选一必填。
         *  2、请填写店铺主页链接，需符合网站规范。
         *  示例值：http://www.qq.com
         * </pre>
         */
        private String storeUrl;

        /**
         * <pre>
         * 字段名：店铺二维码
         * 变量名：store_qr_code
         * 是否必填：1、店铺二维码 or 店铺链接二选一必填。 2、若为电商小程序，可上传店铺页面的小程序二维码。 3、请填写通过图片上传接口预先上传图片生成好的MediaID，仅能上传1张图片 。 示例值：jTpGmxUX3FBWVQ5NJTZvlKX_gdU4cRz7z5NxpnFuAxhBTEO1D8daLC-ehEuo0BJqRTvDujqhThn4ReFxikqJ5YW6zFQ
         * 类型：string(256)
         * 描述：
         * </pre>
         */
        private String storeQrCode;

        /**
         * <pre>
         * 字段名：小程序AppID
         * 变量名：mini_program_sub_appid
         * 是否必填：否
         * 类型：string(256)
         * 描述：
         * </pre>
         */
        private String miniProgramSubAppid;

    }

    @Data
    @NoArgsConstructor
    public static class SettlementInfo implements Serializable {
        /**
         * <pre>
         * 字段名：结算规则ID
         * 变量名：settlement_id
         * 是否必填：否
         * 类型：int
         * 描述：
         *  1、选填，请选择二级商户的结算规则ID，需匹配电商平台开通工具箱选择的费率档位，详细参见电商二级商户结算规则对照表；https://kf.qq.com/faq/220228qEfuAz220228bMFji6.html
         *  2、若电商平台未传入，将默认选择0.6%费率对应的结算规则id；
         *  示例值：719
         * </pre>
         */
        private Integer settlementId;

        /**
         * <pre>
         * 字段名：所属行业
         * 变量名：qualification_type
         * 是否必填：二选一
         * 类型：string[1, 200]
         * 描述：
         *  1、选填，请填写二级商户所属的行业名称，映射特殊资质要求，详细参见电商二级商户结算规则对照表；
         *  2、若电商平台未传入，将默认填写无需特殊资质的行业名称；
         *  示例值：零售批发/生活娱乐/其他
         * </pre>
         */
        private String qualificationType;

    }


    public BiandanUnifiedpayCreateSubMchApplyRequest() {
        super("createSubMchApply");
    }

    @Override
    public Class<BiandanUnifiedpayCreateSubMchApplyResponse> getResponseClass() {
        return null;
    }
}
