package com.yuchen.saas.payment.api.dto.invoice;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.*;

/**
 * @Author 蔡文强
 * @Date 2023/9/13 15:56
 * @Description 发票抬头DTO
 */
@Data
@ApiModel(value = "SaasInvoiceHeaderDTO对象", description = "发票抬头DTO")
public class SaasInvoiceHeaderDTO {

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    private Long id;
    /**
     * 抬头类型(1:个人/非企业单位 2:企业)
     */
    @ApiModelProperty(name = "headerType", value = "抬头类型(1:个人/非企业单位 2:企业)")
    @NotNull(message = "抬头类型不能为空")
    @Min(value = 1, message = "抬头类型值要大于等于1")
    @Max(value = 2, message = "抬头类型值要小于等于2")
    private Integer headerType;
    /**
     * 发票抬头名称
     */
    @ApiModelProperty(name = "headerName", value = "发票抬头名称")
    @NotBlank(message = "发票抬头名称不能为空")
    private String headerName;
    /**
     * 电子邮箱
     */
    @ApiModelProperty(name = "email", value = "电子邮箱")
    private String email;
    /**
     * 单位税号
     */
    @ApiModelProperty(name = "taxNo", value = "单位税号")
    private String taxNo;
    /**
     * 注册地址
     */
    @ApiModelProperty(name = "address", value = "注册地址")
    private String address;
    /**
     * 注册电话
     */
    @ApiModelProperty(name = "phone", value = "注册电话")
    private String phone;
    /**
     * 开户银行
     */
    @ApiModelProperty(name = "bankName", value = "开户银行")
    private String bankName;
    /**
     * 银行账号
     */
    @ApiModelProperty(name = "bankAccount", value = "银行账号")
    private String bankAccount;
    /**
     * 备注信息
     */
    @ApiModelProperty(name = "remark", value = "备注信息")
    private String remark;
    /**
     * 是否为默认抬头(0:否 1:是)
     */
    @ApiModelProperty(name = "isDefault", value = "是否为默认抬头(0:否 1:是)")
    @NotNull(message = "是否为默认抬头不能为空")
    private Integer isDefault;
    /**
     * 平台用户ID
     */
    @ApiModelProperty(name = "userDetailId", value = "平台用户ID")
    @NotNull(message = "平台用户ID不能为空")
    private Long userDetailId;
}
