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 = "SaasInvoiceTaxCategoryDTO对象", description = "税收分类DTO")
public class SaasInvoiceTaxCategoryDTO {

    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    private Long id;
    /**
     * 分类编码
     */
    @ApiModelProperty(name = "categoryCode", value = "分类编码")
    @NotBlank(message = "分类编码不能为空")
    @Size(max = 100, message = "分类编码不能超出100字符")
    private String categoryCode;
    /**
     * 分类名称
     */
    @ApiModelProperty(name = "categoryName", value = "分类名称")
    @NotBlank(message = "分类名称不能为空")
    @Size(max = 100, message = "分类名称不能超出100字符")
    private String categoryName;
    /**
     * 一般纳税人税率
     */
    @ApiModelProperty(name = "generalTaxRate", value = "一般纳税人税率")
    @NotNull(message = "一般纳税人税率不能为空")
    @Min(value = 1, message = "一般纳税人税率要大于等于1%")
    @Max(value = 99, message = "一般纳税人税率要小于等于99%")
    private Integer generalTaxRate;
    /**
     * 小微纳税人税率
     */
    @ApiModelProperty(name = "smallTaxRate", value = "小微纳税人税率")
    private Integer smallTaxRate;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    @Size(max = 500, message = "备注不能超出500字符")
    private String remark;
    /**
     * 客户ID(客户后台创建时才传)
     */
    @ApiModelProperty(name = "customerId", value = "客户ID(客户后台创建时才传)")
    private Long customerId;
    /**
     * 创建类型(1:运营后台创建 2:客户后台创建)
     */
    @ApiModelProperty(name = "createType", value = "创建类型(1:运营后台创建 2:客户后台创建)")
    @NotNull(message = "创建类型不能为空")
    private Integer createType;

}
