package com.red.circle.order.inner.endpoint.api;

import com.red.circle.framework.dto.ResultResponse;
import com.red.circle.order.inner.model.cmd.SysProductConfigQryCmd;
import com.red.circle.order.inner.model.cmd.SysProductConfigV2Cmd;
import com.red.circle.order.inner.model.cmd.SysProductConfigV2QryCmd;
import com.red.circle.order.inner.model.dto.SysProductConfigDTO;
import com.red.circle.order.inner.model.dto.SysProductConfigV2DTO;
import java.io.Serializable;
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/11/1
 */
public interface SysProductConfigClientApi {

  String API_PREFIX = "/sys/product-config";

  @GetMapping("/getById")
  ResultResponse<SysProductConfigDTO> getById(@RequestParam("id") Serializable id);

  @PostMapping("/listProductConfig")
  ResultResponse<List<SysProductConfigDTO>> listProductConfig(
      @RequestBody SysProductConfigQryCmd query);

  @PostMapping("/add")
  ResultResponse<Void> add(@RequestBody SysProductConfigV2Cmd param);

  @PostMapping("/update")
  ResultResponse<Void> update(@RequestBody SysProductConfigV2Cmd param);

  @PostMapping("/listProductConfigV2")
  ResultResponse<List<SysProductConfigV2DTO>> listProductConfigV2(
      @RequestBody SysProductConfigV2QryCmd cmd);

  @PostMapping("/listCandyGroupBySysOrigin")
  ResultResponse<List<SysProductConfigDTO>> listCandyGroupBySysOrigin(@RequestBody SysProductConfigV2QryCmd cmd);
}
