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 = "SaasInvoicePartyDTO对象", description = "开票方DTO")
public class SaasInvoicePartyDTO {
    /**
     * 主键ID
     */
    @ApiModelProperty("主键ID")
    private Long id;
    /**
     * 客户ID
     */
    @ApiModelProperty(name = "customerId", value = "客户ID")
    @NotNull(message = "客户ID不能为空")
    private Long customerId;
    /**
     * 开票范围(1:全部管理区 2:全部园区 3:全部停车场 4:全部充电站(如全部停车场、全部充电站数据库存3,4))
     */
    @ApiModelProperty(name = "invoiceScope", value = "开票范围(1:全部管理区 2:全部园区 3:全部停车场 4:全部充电站(如全部停车场、全部充电站数据库存3,4))")
    private String invoiceScope;
    /**
     * 园区ID(多个,逗号隔开)
     */
    @ApiModelProperty(name = "parkIds", value = "园区ID(多个,逗号隔开)")
    private String parkIds;
    /**
     * 停车场ID(多个,逗号隔开)
     */
    @ApiModelProperty(name = "parkingIds", value = "停车场ID(多个,逗号隔开)")
    private String parkingIds;
    /**
     * 充电站ID(多个,逗号隔开)
     */
    @ApiModelProperty(name = "stationIds", value = "充电站ID(多个,逗号隔开)")
    private String stationIds;
    /**
     * 开票方式(1:手动开票 2:自动开票)
     */
    @ApiModelProperty(name = "invoiceMode", value = "开票方式(1:手动开票 2:自动开票)")
    @NotNull(message = "开票方式不能为空")
    private Integer invoiceMode;
    /**
     * 开票形式(1:数电 2:税控)
     */
    @ApiModelProperty(name = "invoiceCategory", value = "开票形式(1:数电 2:税控)")
    @NotNull(message = "开票形式不能为空")
    private Integer invoiceCategory;
    /**
     * 开票方名称
     */
    @ApiModelProperty(name = "invoicePartyName", value = "开票方名称")
    @NotBlank(message = "开票方名称不能为空")
    private String invoicePartyName;
    /**
     * 开票方税号
     */
    @ApiModelProperty(name = "taxNo", value = "开票方税号")
    @NotBlank(message = "开票方税号不能为空")
    private String taxNo;
    /**
     * 开票appCode
     */
    @ApiModelProperty(name = "appCode", value = "开票appCode")
    private String appCode;
    /**
     * 密钥库文件路径
     */
    @ApiModelProperty(name = "keyStoreUrl", value = "密钥库文件路径")
    private String keyStoreUrl;
    /**
     * 密钥库别名
     */
    @ApiModelProperty(name = "keyStoreAlias", value = "密钥库别名")
    private String keyStoreAlias;
    /**
     * 密钥库密码
     */
    @ApiModelProperty(name = "keyStorePwd", value = "密钥库密码")
    private String keyStorePwd;
    /**
     * api地址
     */
    @ApiModelProperty(name = "apiUrl", value = "api地址")
    private String apiUrl;
    /**
     * 纳税人识别号
     */
    @ApiModelProperty(name = "taxpayerCode", value = "纳税人识别号")
    private String taxpayerCode;
    /**
     * 备注
     */
    @ApiModelProperty(name = "remark", value = "备注")
    @Size(max = 200, message = "备注不能超出200字符")
    private String remark;
    /**
     * 启停状态(0:未启用 1:已启用)
     */
    @ApiModelProperty(name = "enableStatus", value = "启停状态(0:未启用 1:已启用)")
    private Integer enableStatus;
    /**
     * 是否为默认开票方(0:否 1:平台默认 2:渠道应用默认)
     */
    @ApiModelProperty(name = "isDefault", value = "是否为默认开票方(0:否 1:平台默认 2:渠道应用默认)")
    private Integer isDefault;
    /**
     * 应用ID
     */
    @ApiModelProperty(name = "appId", value = "应用ID")
    private String appId;
    /**
     * 开票说明标题
     */
    @ApiModelProperty(name = "title", value = "开票说明标题")
    private String title;
    /**
     * 开票说明内容
     */
    @ApiModelProperty(name = "content", value = "开票说明内容")
    private String content;

}
