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


import com.red.circle.framework.dto.PageResult;
import com.red.circle.framework.dto.ResultResponse;
import com.red.circle.order.inner.model.cmd.SysPayApplicationCommodityCmd;
import com.red.circle.order.inner.model.cmd.SysPayApplicationCommodityQryCmd;
import com.red.circle.order.inner.model.dto.SysPayApplicationCommodityDTO;
import com.red.circle.order.inner.model.dto.SysPayApplicationDTO;
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 pengliang on 2023/11/3
 */
public interface PayApplicationClientApi {

  String API_PREFIX = "/pay-application/client";

  @GetMapping("/listApplication")
  ResultResponse<List<SysPayApplicationDTO>> listApplication();

  @PostMapping("/addApplication")
  ResultResponse<Void> addApplication(@RequestBody SysPayApplicationDTO param);

  @PostMapping("/updateApplication")
  ResultResponse<Void> updateApplication(@RequestBody SysPayApplicationDTO param);

  @PostMapping("/pageCommodity")
  ResultResponse<PageResult<SysPayApplicationCommodityDTO>> pageCommodity(
      @RequestBody SysPayApplicationCommodityQryCmd query);

  @PostMapping("/addOrUpdateCommodity")
  ResultResponse<Void> addOrUpdateCommodity(@RequestBody SysPayApplicationCommodityCmd param);

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