package com.yc.ship.module.trade.controller.app.invoice.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "用户 APP - 电子发票 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppInvoiceRespVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "26635")
    @ExcelProperty("主键ID")
    private Long id;

    @Schema(description = "票务流水号")
    @ExcelProperty("票务流水号")
    private String transactionNo;

    @Schema(description = "来源：1散客，2团票")
    @ExcelProperty("来源：1散客，2团票")
    private Integer source;

    @Schema(description = "抬头类型：0企业单位、1个人", example = "2")
    @ExcelProperty("抬头类型：0企业单位、1个人")
    private Integer titleType;

    @Schema(description = "发票类型：0普通发票，1增值税专用发票", example = "2")
    @ExcelProperty("发票类型：0普通发票，1增值税专用发票")
    private Integer invoiceType;

    @Schema(description = "开票状态：1、开票中；2、开票失败；3、开票成功", example = "1")
    @ExcelProperty("开票状态：1、开票中；2、开票失败；3、开票成功")
    private String invoiceStatus;

    @Schema(description = "订单号", example = "19479")
    @ExcelProperty("订单号")
    private String orderId;

    @Schema(description = "买方名称", example = "王五")
    @ExcelProperty("买方名称")
    private String buyerName;

    @Schema(description = "买方纳税人识别号")
    @ExcelProperty("买方纳税人识别号")
    private String buyerTaxCode;

    @Schema(description = "推送短信手机号")
    @ExcelProperty("推送短信手机号")
    private String buyerTel;

    @Schema(description = "开票员")
    @ExcelProperty("开票员")
    private String buyerClerk;

    @Schema(description = "推送PDF文件的邮箱")
    @ExcelProperty("推送PDF文件的邮箱")
    private String buyerEmail;

    @Schema(description = "电话")
    @ExcelProperty("电话")
    private String buyerPhone;

    @Schema(description = "买方地址")
    @ExcelProperty("买方地址")
    private String buyerAddress;

    @Schema(description = "买方开户行")
    @ExcelProperty("买方开户行")
    private String buyerBank;

    @Schema(description = "买方银行账号", example = "1832")
    @ExcelProperty("买方银行账号")
    private String buyerAccount;

    @Schema(description = "备注", example = "你猜")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "卖方名称", example = "张三")
    @ExcelProperty("卖方名称")
    private String salesName;

    @Schema(description = "卖方地址")
    @ExcelProperty("卖方地址")
    private String salesAddress;

    @Schema(description = "卖方税号")
    @ExcelProperty("卖方税号")
    private String salesTaxCode;

    @Schema(description = "身份认证")
    @ExcelProperty("身份认证")
    private String identity;

    @Schema(description = "开票金额", example = "17518")
    @ExcelProperty("开票金额")
    private BigDecimal price;

    @Schema(description = "发票请求流水号")
    @ExcelProperty("发票请求流水号")
    private String fpqqlsh;

    @Schema(description = "开票状态： 2 :开票完成（ 最终状", example = "1")
    @ExcelProperty("开票状态： 2 :开票完成（ 最终状")
    private String cStatus;

    @Schema(description = "开票信息，成功或者失败的信息")
    @ExcelProperty("开票信息，成功或者失败的信息")
    private String cMsg;

    @Schema(description = "发票 pdf 地址", example = "https://www.iocoder.cn")
    @ExcelProperty("发票 pdf 地址")
    private String cUrl;

    @Schema(description = "发票代码")
    @ExcelProperty("发票代码")
    private String cFpdm;

    @Schema(description = "发票号码")
    @ExcelProperty("发票号码")
    private String cFphm;

    @Schema(description = "开票日期")
    @ExcelProperty("开票日期")
    private LocalDateTime cKprq;

    @Schema(description = "二维码")
    @ExcelProperty("二维码")
    private String cQrcode;

    @Schema(description = "不含税金额")
    @ExcelProperty("不含税金额")
    private BigDecimal cBhsje;

    @Schema(description = "合计税额")
    @ExcelProperty("合计税额")
    private BigDecimal cHjse;

    @Schema(description = "结果信息")
    @ExcelProperty("结果信息")
    private String cResultmsg;

    @Schema(description = "发票种类")
    @ExcelProperty("发票种类")
    private String cInvoiceLine;

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

    @Schema(description = "旅行社账号ID", example = "1834")
    @ExcelProperty("旅行社账号ID")
    private String accountId;

    @Schema(description = "发票服务商")
    @ExcelProperty("发票服务商")
    private String fpSupplier;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

}