package com.jwipc.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 对账模块-费用关联缴款书明细
 * </p>
 *
 * @author shenyang.ou
 * @since 2025-11-05
 */
@Getter
@Setter
@TableName("fin_cost_invoiced_payment_certificate")
public class CostInvoicedPaymentCertificate implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 数据主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 开票申请单ID
     */
    private Long iaId;

    /**
     * 可抵扣编号：1-可抵扣；2-不可抵扣
     */
    private Integer deductionCodeType;

    /**
     * 发票代码
     */
    private String invoiceCode;

    /**
     * 发票号码
     */
    private String invoiceNumber;

    /**
     * 数电发票号码
     */
    private String electronInvoiceNumber;

    /**
     * 税号
     */
    private String dutyParagraph;

    /**
     * 发票日期
     */
    private LocalDate invoiceDate;

    /**
     * 税率
     */
    private String taxRate;

    /**
     * 币种
     */
    private String currencyCode;

    /**
     * 不含税金额
     */
    private BigDecimal noTaxAmount;

    /**
     * 含税金额
     */
    private BigDecimal taxAmount;

    /**
     * 税金
     */
    private BigDecimal diffTaxMoney;

    /**
     * 供应商名称（弃用）
     */
    private String supplierName;

    /**
     * 供应商代码（弃用）
     */
    private String supplierCode;

    /**
     * 发票附件id
     */
    private Long fileId;

    /**
     * 发票附件名称
     */
    private String fileName;

    /**
     * 创建用户ID
     */
    private Long createUserId;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 最后更新用户ID
     */
    private Long updateUserId;

    /**
     * 最后更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 删除标记 0:未删除 1:已删除
     */
    private Integer deleteFlag;

    /**
     * 抵扣状态 1：待认证（红色）2：已认证（绿色）3：红冲
     */
    private String deductionStatus;

    /**
     * 备注
     */
    private String note;

    /**
     * 发票类型；0-蓝字发票；1-红字发票
     */
    private Integer type;

    /**
     * 发票流水号（发票云返回）
     */
    private String serialNo;

    /**
     * 发票云返回备注
     */
    private String erpRemark;

    /**
     * 被红冲的蓝字发票号
     */
    private String blueInvoiceNo;

    private Integer subject;
}
