package com.ruoyi.bst.account.domain;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.enums.DesensitizedType;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * 收款账户对象 bst_account
 *
 * @author ruoyi
 * @date 2025-04-07
 */
@Data
public class Account extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    private Long id;

    @Excel(name = "所属用户ID")
    @ApiModelProperty("所属用户ID")
    private Long userId;

    @Excel(name = "类型", readConverterExp = "W=X-线下微信,A=LI-线下支付宝,B=ANK-线下银行卡,Q=R-线下收款二维码")
    @ApiModelProperty("类型")
    @NotBlank(message = "类型不能为空")
    private String type;

    @Excel(name = "账号")
    @ApiModelProperty("账号")
    @NotBlank(message = "账号不能为空")
    @Sensitive(desensitizedType = DesensitizedType.BANK_CARD)
    private String no;

    @Excel(name = "收款人姓名")
    @ApiModelProperty("收款人姓名")
    @Sensitive(desensitizedType = DesensitizedType.USERNAME)
    private String name;

    @Excel(name = "身份证号")
    @ApiModelProperty("身份证号")
    @Sensitive(desensitizedType = DesensitizedType.ID_CARD)
    private String idCard;

    @Excel(name = "手机号")
    @ApiModelProperty("手机号")
    @Sensitive(desensitizedType = DesensitizedType.PHONE)
    private String mobile;

    @Excel(name = "银行图标")
    @ApiModelProperty("银行图标")
    private String bankIcon;

    @Excel(name = "银行名称")
    @ApiModelProperty("银行名称")
    private String bankName;

    @Excel(name = "银行卡面名称")
    @ApiModelProperty("银行卡面名称")
    private String bankCardName;

    @Excel(name = "银行卡面类型")
    @ApiModelProperty("银行卡面类型")
    private String bankType;

}
