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 com.red.circle.framework.mybatis.entity.TimestampBaseEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.time.LocalDate;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 用户抽奖进度表.
 * </p>
 *
 * @author system
 * @since 2025-10-20
 */
@Data
@Accessors(chain = true)
@TableName("lottery_user_progress")
public class LotteryUserProgress {

  @Serial
  private static final long serialVersionUID = 1L;

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

  /**
   * 用户ID.
   */
  @TableField("user_id")
  private Long userId;

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

  /**
   * 周标识：2025W42.
   */
  @TableField("week_key")
  private String weekKey;

  /**
   * 本周累计金额.
   */
  @TableField("total_amount")
  private BigDecimal totalAmount;

  /**
   * 本周抽奖次数.
   */
  @TableField("total_draw_count")
  private Integer totalDrawCount;

  /**
   * 本周大奖次数.
   */
  @TableField("big_prize_count")
  private Integer bigPrizeCount;

  /**
   * 当前所处阶段：EARLY-前期，MIDDLE-中期，LATE-后期.
   */
  @TableField("current_stage")
  private String currentStage;

  /**
   * 上次抽奖日期.
   */
  @TableField("last_draw_date")
  private LocalDate lastDrawDate;

  private Timestamp createTime;

  private Timestamp updateTime;

}
