package com.yc.ship.module.trade.api.invoice.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

@Schema(description = "RPC 服务 - Invoice 开票 Request DTO")
@Data
public class InvoicingReqDTO {

    @Schema(description = "订单支付ID")
    private Long id;

    @Schema(description = "订单号",example="")
    private List<String> orderIdList;
    /** 抬头类型：0个人，1企业单位、 */
    @Schema(description = "抬头类型",example="")
    @NotNull(message="抬头类型不能为空")
    private Integer titleType;

    @Schema(description = "来源：1散客，2团票")
    private Integer source;
    /** 买方名称 */
    @Schema(description = "买方名称",example="")
    private String buyerName;
    /** 买方纳税人识别号 */
    @Schema(description = "买方纳税人识别号,抬头类型为企业时,必填",example="")
    private String buyerTaxCode;

    /** 推送短信手机号 */
    @Schema(description = "推送短信手机号",example="")
    private String buyerTel;

    /** 推送PDF文件的邮箱 */
    @Schema(description = "推送PDF文件的邮箱 ",example="")
    private String buyerEmail;

    /** 开票金额 */
    @Schema(description = "开票金额(总金额)",example="")
    private BigDecimal totalPrice;

    @Schema(description = "当前开票金额（实际金额）",example="")
    private BigDecimal price;

    @Schema(description = "当前开票折扣金额",example="")
    private BigDecimal zkprice;

    /** 买方地址 */
    @Schema(description = "买方地址",example="")
    private String buyerAddress;
    /** 买方开户行 */
    @Schema(description = "买方开户行",example="")
    private String buyerBank;
    /** 买方银行账号 */
    @Schema(description = "买方银行账号",example="")
    private String buyerAccount;

    @Schema(description = "账号",example="")
    private String accountId;

    @Schema(description = "旅行社ID", example = "16723")
    private String agencyId;

    @Schema(description = "发票种类代码，0增值税普通发票，1增值税专用发票", example = "16723")
    private Integer invoiceType;

    @Schema(description = "开票备注信息", example = "")
    private String remark;

    @Schema(description = "开票备注信息", example = "")
    private Integer isPlat;

}
