package com.erp.invoice.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 发票明细实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("invoice_items")
public class InvoiceItem {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 发票ID
     */
    private Long invoiceId;
    
    /**
     * 租户ID
     */
    private Long tenantId;
    
    /**
     * 商品/服务名称
     */
    private String goodsName;
    
    /**
     * 规格型号
     */
    private String spec;
    
    /**
     * 单位
     */
    private String unit;
    
    /**
     * 数量
     */
    private BigDecimal quantity;
    
    /**
     * 单价（含税）
     */
    private BigDecimal unitPrice;
    
    /**
     * 金额（不含税）
     */
    private BigDecimal amount;
    
    /**
     * 税率
     */
    private BigDecimal taxRate;
    
    /**
     * 税额
     */
    private BigDecimal taxAmount;
    
    /**
     * 价税合计
     */
    private BigDecimal totalAmount;
    
    /**
     * 商品编码
     */
    private String goodsCode;
    
    /**
     * 税收分类编码
     */
    private String taxClassificationCode;
    
    /**
     * 优惠政策标识：0-不享受, 1-享受
     */
    private Integer preferentialFlag;
    
    /**
     * 零税率标识：0-非零税率, 1-免税, 2-不征税, 3-使用低税率
     */
    private Integer zeroTaxFlag;
    
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;
    
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
    
    /**
     * 删除时间（逻辑删除）
     */
    @TableLogic
    private LocalDateTime deletedAt;
}
