package com.red.circle.other.inner.endpoint.activity.api;

import com.red.circle.framework.dto.ResultResponse;
import com.red.circle.other.inner.model.cmd.activity.LotteryPrizeSaveCmd;
import com.red.circle.other.inner.model.dto.activity.LotteryPrizeDTO;
import java.util.List;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 奖品管理Client API.
 *
 * @author system
 * @since 2025-10-18
 */
public interface LotteryPrizeManageClientApi {

  String API_PREFIX = "/lottery-prize-manage/client";

  /**
   * 保存奖品（新增或更新）.
   */
  @PostMapping("/save")
  ResultResponse<Void> savePrize(@RequestBody LotteryPrizeSaveCmd cmd);

  /**
   * 根据活动ID获取奖品列表.
   */
  @GetMapping("/listByActivityId")
  ResultResponse<List<LotteryPrizeDTO>> listByActivityId(@RequestParam("activityId") Long activityId);

  /**
   * 删除奖品.
   */
  @DeleteMapping("/delete")
  ResultResponse<Void> deletePrize(@RequestParam("id") Long id);

  /**
   * 更新活动总库存.
   */
  @PostMapping("/updateActivityStock")
  ResultResponse<Void> updateActivityStock(@RequestParam("activityId") Long activityId);

}
