package com.yn.bftl.thirdparty.modules.chinaums.dto.byx;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yn.bftl.thirdparty.common.dto.BaseSecretDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "ByxChinaumsCreateCusDTO", description = "银联创建个人DTO")
public class ByxChinaumsCreateCusDTO extends BaseSecretDTO {

    @ApiModelProperty(value = "平台订单号", hidden = true)
    private String mctOrderNo;

    @ApiModelProperty(value = "外部 ID 关联类型", notes = "1：表示公众号用户 ID")
    private Integer relType;

    @ApiModelProperty(value = "关联类型非空时必填。")
    private Integer extUserId;

    @ApiModelProperty(value = "用户姓名")
    private String userName;

    @ApiModelProperty(value = "手机号")
    private String mobileNo;

    @ApiModelProperty(value = "证件编号")
    private String idCard;

    @ApiModelProperty(value = "身份证开始日期")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyyMMdd")
    private LocalDateTime idCardStartDate;

    @ApiModelProperty(value = "身份证结束日期")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyyMMdd")
    private LocalDateTime idCardEndDate;

    @ApiModelProperty(value = "认证类型", notes = "0：姓名身份证二要素 1：银行卡三要素 2：运营商三要素")
    private Integer authType;

    @ApiModelProperty(value = "银行账号", notes = "选择银行卡三要素认证时必填。银行账户户名需要与开户的用户姓名一致")
    private String bankAcctNo;

    @ApiModelProperty(value = "手机短信验证码", notes = "选择姓名身份证二要素验证时必填。")
    private String smsAuthCode;

    @ApiModelProperty(value = "是否激活", notes = "0：不激活，1：激活。默认为激活。只有激活的账户才可正常进行交易。如果本接口不激活账户，那么需要额外调用激活账户接口。")
    private Integer isActive;

    @ApiModelProperty(value = "用户联系电话")
    private String userTelNo;

    @ApiModelProperty(value = "用户电子邮箱")
    private String userEmail;

    @ApiModelProperty(value = "用户地址")
    private String userAddr;

    @ApiModelProperty(value = "性别", notes = "M：男，F：女")
    private String userSex;

    @ApiModelProperty(value = "职业")
    private String userCareer;

    @ApiModelProperty(value = "生日", notes = "yyyyMMdd")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyyMMdd")
    private String userBirthday;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "国籍")
    private String nationality;

    @ApiModelProperty(value = "紧急联系人")
    private String emergencyContact;

    @ApiModelProperty(value = "注册 IP")
    private String regIp;

    @ApiModelProperty(value = "注册 Mac")
    private String regMac;

    @ApiModelProperty(value = "注册设备名称")
    private String regDevName;

    @ApiModelProperty(value = "补充证件类型")
    private String subCertType;

    @ApiModelProperty(value = "补充证件正面保存路径")
    private String subCertFileSavePath1;

    @ApiModelProperty(value = "补充证件反面保存路径")
    private String subCertFileSavePath2;

    @ApiModelProperty(value = "OCR 验证资料是否修改")
    private String ocrUpdate;

    @ApiModelProperty(value = "OCR 验证资料修改类型")
    private String ocrUpdateType;

}
