package com.trade.service.trade.purchaseorder.domain;

import java.math.BigDecimal;
import java.time.LocalDate;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.trade.common.core.domain.BizBaseEntity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * <p>
 * 采购订单-发票信息
 * </p>
 *
 * @author wl
 * @since 2024-09-14
 */
@Getter
@Setter
@TableName("purchase_order_invoice")
public class PurchaseOrderInvoice extends BizBaseEntity {

    private static final long serialVersionUID = 1726907398604L;
    @ApiModelProperty(name = "amount", value = "发票金额")
    private BigDecimal amount = BigDecimal.ZERO;
    @ApiModelProperty(name = "deleted", value = "删除标识")
    private Integer deleted;
    @ApiModelProperty(name = "digitalInvoiceNumber", value = "数电发票号码")
    private String digitalInvoiceNumber;
    @ApiModelProperty(name = "fileId", value = "发票文件id")
    private Long fileId;
    @ApiModelProperty(name = "invoiceCode", value = "发票代码")
    private String invoiceCode;
    @ApiModelProperty(name = "invoiceNumber", value = "发票号码")
    private String invoiceNumber;
    @ApiModelProperty(name = "invoiceType", value = "发票类型1增值税专用发票2增值税普通发票")
    private String invoiceType;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "invoicingDate", value = "开票日期")
    private LocalDate invoicingDate;
    @ApiModelProperty(name = "invoiceStatus", value = "发票状态Y已认证N未认证")
    private String invoiceStatus;
    @ApiModelProperty(name = "orderId", value = "采购订单id")
    private Long orderId;
    @ApiModelProperty(name = "taxAmount", value = "发票税额")
    private BigDecimal taxAmount = BigDecimal.ZERO;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(name = "certificationDate", value = "认证日期")
    private LocalDate certificationDate;
    @ApiModelProperty(name = "bz", value = "备注")
    private String bz;
    @ApiModelProperty(name = "purchaseVoucherNo", value = "进货凭证号")
    private String purchaseVoucherNo;
    @ApiModelProperty(name = "source", value = "发票来源1B端2C端")
    private Integer source;
    @ApiModelProperty(name = "pullState", value = "文件拉取状态0未拉取1已拉取")
    private Integer pullState;
}
