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

import com.red.circle.framework.dto.PageResult;
import com.red.circle.framework.dto.ResultResponse;
import com.red.circle.other.inner.model.cmd.sys.BatchProcessFeedbackCmd;
import com.red.circle.other.inner.model.cmd.sys.SysFeedbackQryCmd;
import com.red.circle.other.inner.model.dto.sys.SysFeedbackDTO;
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/5/24
 */
public interface SysFeedbackClientApi {

  String API_PREFIX = "/sys-feedback/client";

  @PostMapping("/pageSysFeedbackVO")
  ResultResponse<PageResult<SysFeedbackDTO>> pageSysFeedbackVO(
      @RequestBody SysFeedbackQryCmd query);

  @GetMapping("/updateApprovalStatus")
  ResultResponse<Void> updateApprovalStatus(@RequestParam("updateUserId") Long updateUserId,
      @RequestParam("id") Long id, @RequestParam("status") Integer status);

  @GetMapping("/updateApprovalRemarks")
  ResultResponse<Void> updateApprovalRemarks(@RequestParam("userId") Long userId,
      @RequestParam("id") Long id, @RequestParam("remarks") String remarks);

  @GetMapping("/updateRemarksAndNotice")
  ResultResponse<Void> updateRemarksAndNotice(@RequestParam("updateUserId") Long updateUserId,
      @RequestParam("userId") Long userId, @RequestParam("id") Long id,
      @RequestParam("remarks") String remarks);

  @PostMapping("/batchUpdateRemarksAndNotice")
  ResultResponse<Void> batchUpdateRemarksAndNotice(@RequestBody BatchProcessFeedbackCmd cmd);
}
