package com.red.circle.other.infra.database.rds.entity.activity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 奖品配置表.
 * </p>
 *
 * @author system
 * @since 2025-10-18
 */
@Data
@Accessors(chain = true)
@TableName("lottery_prize")
public class LotteryPrize implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

  /**
   * 主键标识.
   */
  @TableId("id")
  private Long id;

  /**
   * 活动ID.
   */
  @TableField("activity_id")
  private Long activityId;

  /**
   * 奖品编码.
   */
  @TableField("prize_code")
  private String prizeCode;

  /**
   * 奖品名称.
   */
  @TableField("prize_name")
  private String prizeName;

  /**
   * 奖品类型：MONEY-金钱，GOLD-金币，DIAMOND-钻石，PROPS-道具，BADGE-徽章，THEME-主题，NOBLE_VIP-贵族VIP，THANKS-谢谢参与.
   */
  @TableField("prize_type")
  private String prizeType;

  /**
   * 奖品价值/数量.
   */
  @TableField("prize_value")
  private BigDecimal prizeValue;

  /**
   * 奖品图片.
   */
  @TableField("prize_image")
  private String prizeImage;

  /**
   * 道具ID（当prize_type为PROPS类时使用）.
   */
  @TableField("props_id")
  private Long propsId;

  /**
   * 有效天数（道具/徽章使用）.
   */
  @TableField("days")
  private Integer days;

  /**
   * 奖品等级：1-特等奖，2-一等奖，3-二等奖.
   */
  @TableField("prize_level")
  private Integer prizeLevel;

  /**
   * 总库存.
   */
  @TableField("total_stock")
  private Integer totalStock;

  /**
   * 剩余库存.
   */
  @TableField("remaining_stock")
  private Integer remainingStock;

  /**
   * 每日库存限制（0为不限制）.
   */
  @TableField("daily_stock")
  private Integer dailyStock;

  /**
   * 中奖概率（0-1之间）.
   */
  @TableField("probability")
  private BigDecimal probability;

  /**
   * 连抽时的概率（可以比单抽高）.
   */
  @TableField("multi_draw_probability")
  private BigDecimal multiDrawProbability;

  /**
   * 是否可作为保底奖品：0-否，1-是.
   */
  @TableField("is_guarantee_prize")
  private Integer isGuaranteePrize;

  /**
   * 奖品池：EARLY-前期池，MIDDLE-中期池，LATE-后期池，ALL-全部.
   */
  @TableField("prize_pool")
  private String prizePool;

  /**
   * 每周发放上限（0不限制）.
   */
  @TableField("week_limit")
  private Integer weekLimit;

  /**
   * 排序（九宫格位置）.
   */
  @TableField("sort_order")
  private Integer sortOrder;

  /**
   * 是否展示：0-否，1-是.
   */
  @TableField("is_display")
  private Integer isDisplay;

  private Timestamp createTime;

  private Timestamp updateTime;

}
