package org.tio.sitexxx.service.service.pay.vo.ncount;

import lombok.Data;
import org.tio.sitexxx.service.service.pay.vo.ncount.base.NCountBaseVo;

/**
 * <pre>
 *    @author : vagrancy
 *    e-mail : 18050829067@163.com
 *    time   : 2025-11-25 10:32
 *    desc   :
 * </pre>
 */
@Data
public class NCardBindVo extends NCountBaseVo {

    private static final long serialVersionUID = 6899873421021563958L;

    /**
     * 银行卡卡号
     */
    private String cardNo;

    /**
     * 持卡人姓名
     */
    private String holderName;

    /**
     * 信用卡有效期
     */
    private String cardAvailableDate;

    /**
     * 信用卡CVV2
     */
    private String cvv2;

    /**
     * 银行签约手机号
     */
    private String mobileNo;

    /**
     * 证件类型
     */
    private String identityType;

    /**
     * 证件号码
     */
    private String identityCode;

    /**
     * 商户用户ID
     */
    private String userId;

    /**
     * 商户用户IP
     */
    private String merUserIp;

    public static final String[]	encryptArr	= new String[] { "cardNo", "holderName", "cardAvailableDate", "cvv2", "mobileNo", "identityType", "identityCode", "userId",
            "merUserIp" };
    public static final String[]	verifyArr	= new String[] { "version", "tranCode", "merOrderId", "merId", "charset", "signType", "resultCode", "errorCode", "ncountOrderId" };
    public static final String[]	submitArr	= new String[] { "version", "tranCode", "merId", "merOrderId", "submitTime", "msgCiphertext", "signType", "signValue", "merAttach",
            "charset" };

    @Override
    public String getEncryptJsonStr() {
        return getJsonStr(this, encryptArr);
    }

    @Override
    public String getVerifyJsonStr() {
        return getJsonStr(this, verifyArr);
    }

    @Override
    public String getSubmitJsonStr() {
        return getJsonStr(this, submitArr);
    }
}

