package com.snack.server.module.seckill.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

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

/**
 * 抢购活动商品
 *
 * 对应数据库表：seckill_product
 */
@Data
@TableName("seckill_product")
public class SeckillProduct implements Serializable {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 所属活动 ID */
    private Long activityId;

    /** 商品 SPU ID */
    private Long productId;

    /** 商品 SKU ID */
    private Long skuId;

    /** 抢购价 */
    private BigDecimal seckillPrice;

    /** 原价（展示用） */
    private BigDecimal originPrice;

    /** 总库存（活动开始时同步到 Redis） */
    private Integer seckillStock;

    /** 剩余库存（MySQL 兜底） */
    private Integer remainStock;

    /** 每人限购数量 */
    private Integer perLimit;

    /** 已售数量（异步累加） */
    private Integer sales;

    /** 活动内排序 */
    private Integer sort;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
