package com.red.circle.other.inner.model.cmd.activity;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.sql.Timestamp;

/**
 * 创建/更新活动命令.
 *
 * @author system
 * @since 2025-10-18
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class LotteryActivitySaveCmd {

  /**
   * 活动ID（更新时需要）.
   */
  private Long id;

  /**
   * 活动编码.
   */
  @NotBlank(message = "活动编码不能为空")
  private String activityCode;

  /**
   * 活动名称.
   */
  @NotBlank(message = "活动名称不能为空")
  private String activityName;

  /**
   * 活动描述.
   */
  private String activityDesc;

  /**
   * 开始时间.
   */
  @NotNull(message = "开始时间不能为空")
  private Timestamp startTime;

  /**
   * 结束时间.
   */
  @NotNull(message = "结束时间不能为空")
  private Timestamp endTime;

  /**
   * 抽奖次数限制.
   */
  private Integer drawCountLimit;

  /**
   * 次数限制周期.
   */
  private String drawCountCycle;

  /**
   * 是否需要抽奖券.
   */
  private Integer needTicket;

  /**
   * 每次消耗抽奖券数量.
   */
  private Integer ticketCost;

  /**
   * 排序.
   */
  private Integer sortOrder;

}
