package com.red.circle.other.inner.endpoint.material.props.api;

import com.red.circle.framework.dto.PageResult;
import com.red.circle.framework.dto.ResultResponse;
import com.red.circle.other.inner.model.cmd.material.PropsActivityRewardGroupParamCmd;
import com.red.circle.other.inner.model.cmd.material.PropsActivityRewardGroupQryCmd;
import com.red.circle.other.inner.model.dto.material.ActivityGroupKeyValueDTO;
import com.red.circle.other.inner.model.dto.material.PropsActivityRewardGroupDTO;
import java.util.List;
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;

/**
 * 道具活动配置分组
 *
 * @author zongpubin on 2023/10/23
 */
public interface PropsActivityRewardGroupClientApi {

  String API_PREFIX = "/props-activity/reward/group/client";

  @PostMapping("/page")
  ResultResponse<PageResult<PropsActivityRewardGroupDTO>> pagePropsActivityRewardGroup(
      @RequestBody PropsActivityRewardGroupQryCmd query);

  @GetMapping("/getByGroupId")
  ResultResponse<PropsActivityRewardGroupDTO> getByGroupId(@RequestParam("id") Long id);

  @PostMapping("/saveOrUpdate")
  ResultResponse<String> saveOrUpdate(
      @RequestBody PropsActivityRewardGroupParamCmd propsActivityRewardGroupParam);

  @GetMapping("/offShelf")
  ResultResponse<Void> offShelf(@RequestParam("id") Long id,
      @RequestParam("offShelf") Boolean offShelf);

  @GetMapping("/getActivityGroupKey")
  ResultResponse<List<ActivityGroupKeyValueDTO>> getActivityGroupKeyValueList();
}
