package com.red.circle.other.app.service.activity;

import com.red.circle.common.business.dto.cmd.AppExtCommand;
import com.red.circle.other.app.dto.clientobject.activity.LotteryActivityCO;
import com.red.circle.other.app.dto.clientobject.activity.LotteryActivityDetailCO;
import com.red.circle.other.app.dto.clientobject.activity.LotteryDrawResultCO;
import com.red.circle.other.app.dto.clientobject.activity.LotteryRecordCO;
import com.red.circle.other.app.dto.clientobject.activity.LotteryTicketCO;
import com.red.circle.other.app.dto.cmd.activity.LotteryDrawCmd;
import com.red.circle.other.app.dto.cmd.activity.LotteryRecordQryCmd;
import java.util.List;

/**
 * 抽奖服务.
 *
 * @author system
 * @since 2025-10-18
 */
public interface LotteryService {

  /**
   * 获取有效活动列表.
   */
  List<LotteryActivityCO> listActiveActivities(AppExtCommand cmd);

  /**
   * 获取活动详情.
   */
  LotteryActivityDetailCO getActivityDetail(String activityCode, AppExtCommand cmd);

  /**
   * 执行抽奖.
   */
  LotteryDrawResultCO draw(LotteryDrawCmd cmd);

  /**
   * 查询用户抽奖券.
   */
  List<LotteryTicketCO> listMyTickets(AppExtCommand cmd);

}
