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.sql.Timestamp;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 中奖记录表.
 * </p>
 *
 * @author system
 * @since 2025-10-18
 */
@Data
@Accessors(chain = true)
@TableName("lottery_record")
public class LotteryRecord implements Serializable {

  @Serial
  private static final long serialVersionUID = 1L;

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

  /**
   * 记录编号.
   */
  @TableField("record_no")
  private String recordNo;

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

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

  /**
   * 奖品ID（未中奖为NULL）.
   */
  @TableField("prize_id")
  private Long prizeId;

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

  /**
   * 奖品类型快照.
   */
  @TableField("prize_type")
  private String prizeType;

  /**
   * 是否中奖：0-未中奖，1-中奖.
   */
  @TableField("is_win")
  private Integer isWin;

  /**
   * 抽奖时间.
   */
  @TableField("draw_time")
  private Timestamp drawTime;

  /**
   * 奖品状态：0-待发放，1-已发放，2-发放失败.
   */
  @TableField("prize_status")
  private Integer prizeStatus;

  /**
   * 发放时间.
   */
  @TableField("deliver_time")
  private Timestamp deliverTime;

  /**
   * 抽奖批次号（连抽时相同）.
   */
  @TableField("draw_batch_no")
  private String drawBatchNo;

  /**
   * 抽奖类型：1-单抽，2-十连抽.
   */
  @TableField("draw_type")
  private Integer drawType;

  /**
   * 备注.
   */
  @TableField("remark")
  private String remark;

}
