package com.yc.ship.module.trade.dal.dataobject.invoice;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yc.ship.framework.tenant.core.db.TenantBaseDO;
import lombok.*;

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

/**
 * 电子发票 DO
 *
 * @author 管理员
 */
@TableName("trade_invoice")
@KeySequence("trade_invoice_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class InvoiceDO extends TenantBaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 票务流水号
     */
    private String transactionNo;
    /**
     * 来源：1散客，2团票
     */
    private Integer source;
    /**
     * 抬头类型：0个人、1企业
     */
    private Integer titleType;
    /**
     * 发票类型：0普通发票，1增值税专用发票
     */
    private Integer invoiceType;
    /**
     * 开票状态：
     */
    private Integer invoiceStatus;
    /**
     * 订单号
     */
    private String orderId;
    /**
     * 买方名称
     */
    private String buyerName;
    /**
     * 买方纳税人识别号
     */
    private String buyerTaxCode;
    /**
     * 推送短信手机号
     */
    private String buyerTel;
    /**
     * 开票员
     */
    private String buyerClerk;
    /**
     * 推送PDF文件的邮箱
     */
    private String buyerEmail;
    /**
     * 电话
     */
    private String buyerPhone;
    /**
     * 买方地址
     */
    private String buyerAddress;
    /**
     * 买方开户行
     */
    private String buyerBank;
    /**
     * 买方银行账号
     */
    private String buyerAccount;
    /**
     * 备注
     */
    private String remark;
    /**
     * 卖方名称
     */
    private String salesName;
    /**
     * 卖方地址
     */
    private String salesAddress;
    /**
     * 卖方税号
     */
    private String salesTaxCode;
    /**
     * 身份认证
     */
    private String identity;
    /**
     * 可开票金额
     */
    private BigDecimal totalPrice;

    /**
     * 开票金额
     */
    private BigDecimal price;

    /**
     * 折扣金额
     */
    private BigDecimal zkprice;
    /**
     * 发票请求流水号
     */
    private String fpqqlsh;
    /**
     * 开票状态： 2 :开票完成（ 最终状
     */
    private String cStatus;
    /**
     * 开票信息，成功或者失败的信息
     */
    private String cMsg;
    /**
     * 发票 pdf 地址
     */
    private String cUrl;
    /**
     * 发票代码
     */
    private String cFpdm;
    /**
     * 发票号码
     */
    private String cFphm;
    /**
     * 开票日期
     */
    private LocalDateTime cKprq;
    /**
     * 二维码
     */
    private String cQrcode;
    /**
     * 不含税金额
     */
    private BigDecimal cBhsje;
    /**
     * 合计税额
     */
    private BigDecimal cHjse;
    /**
     * 结果信息
     */
    private String cResultmsg;
    /**
     * 发票种类
     */
    private String cInvoiceLine;
    /**
     * 旅行社ID
     */
    private String agencyId;
    /**
     * 门店ID
     */
    private Long storeId;
    /**
     * 旅行社账号ID
     */
    private String accountId;
    /**
     * 发票服务商
     */
    private String fpSupplier;

}
