package com.jeequan.jeepay.core.model.applyment;

import com.alibaba.fastjson.JSONArray;
import com.jeequan.jeepay.core.annotate.Desensitized;
import com.jeequan.jeepay.core.constants.DesensitizedTypeEnum;
import lombok.Data;

import java.io.Serializable;

/**
 * 商户进件变更信息模型
 * @since 2023-12-06 17:00:22
 */
@Data
public class MchModifyApplymentModel implements Serializable {

    /**
     * 变更流水号
     */
    private String modifyApplyId;


    private String mchApplyId;

    /**
     * 1、基本资料变更; 2、结算信息变更; 3、费率信息变更;
     */
    private Byte modifyApplyType;

    private String mchShortName;


    /*=========结算信息变更========*/

    /**
     * 结算账号类型 B:对公,C:对私
     */
    private String settAccountType;

    /**
     * 是否是非法人结算，Y: 是; N: 不是
     */
    private String illegal;

    /**
     * 结算账号名称
     **/
    @Desensitized(type = DesensitizedTypeEnum.CHINESE_NAME)
    private String settAccountName;

    /**
     * 结算银行卡账号
     **/
    @Desensitized(type = DesensitizedTypeEnum.BANK_CARD)
    private String settAccountNo;

    /**
     * 结算银行名称
     **/
    private String settAccountBankName;

    /**
     * 银行卡图片/开户许可证件
     */
    private String settAccountLicenseImg;

    /**
     * 银行卡反面图片
     */
    private String settBankCardBackImg;

    /**
     * 结算银行开户支行区域编码
     **/
    private JSONArray settAccountBankBranchAreaCode;

    /**
     * 结算银行开户支行区域名称
     */
    private JSONArray settAccountBankBranchAreaName;

    /**
     * 支行名称
     */
    private String settAccountBankBranchName;

    /**
     * 支行联行号
     */
    private String bankSubCode;

    /**
     * 结算账户预留手机号
     */
    private String phone;

    /**
     * 银行行号
     */
    private String bankCode;

    /**
     * 非法人结算授权函
     */
    private String nonLegSettleAuthPic;

    /**
     * （结算到非法人时必填） 结算卡持卡人 身份证号
     **/
    @Desensitized(type = DesensitizedTypeEnum.ID_CARD)
    private String settAccountIdcardNo;

    /**
     * （结算到非法人时必填） 结算卡持卡人 身份证正面人像面 照片
     **/
    private String settAccountIdcard1Img;

    /**
     * （结算到非法人时必填） 结算卡持卡人 身份证国徽面 照片
     **/
    private String settAccountIdcard2Img;


    /**
     * （结算到非法人时必填） 结算卡持卡人 身份证有效期开始时间
     **/
    private String settAccountIdcardEffectBegin;

    /**
     * （结算到非法人时必填） 结算卡持卡人 身份证有效期截止时间
     **/
    private String settAccountIdcardEffectEnd;

    /**
     * 信息变更表，不同通道需求不一致
     */
    private String changeFormPic;

    /**
     * 结算类型
     */
    private String settlementType;

    /**
     * 开户凭证图片，部分通道 (快钱) 需要
     */
    private String accOpenCertImg;

    /**
     * 授权人手持身份证
     */
    private String authHandImg;

    /**
     * 支付宝账号, 手机号
     */
    private String alipayLogonId;

    /** 默认结算类型：bankCard-结算到银行卡 alipayAccount-结算到支付宝账号 **/
    private String defaultSettleType;
}
