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


import com.red.circle.common.business.dto.cmd.PageRoomIdCmd;
import com.red.circle.framework.dto.PageResult;
import com.red.circle.framework.dto.ResultResponse;
import com.red.circle.other.inner.model.cmd.sys.RoomTopFixedCmd;
import com.red.circle.other.inner.model.cmd.sys.RoomTopFixedQryCmd;
import com.red.circle.other.inner.model.cmd.sys.SysHotRoomCmd;
import com.red.circle.other.inner.model.dto.sys.SysHotRoomDTO;
import com.red.circle.other.inner.model.dto.sys.SysTopRoomDTO;
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/7/24
 */
public interface HotRoomClientApi {

  String API_PREFIX = "/hot-room/client";

  @PostMapping("/addOrUpdate")
  ResultResponse<Void> addOrUpdate(@RequestBody SysHotRoomCmd param);

  @GetMapping("/remove")
  ResultResponse<Void> remove(@RequestParam("roomId") Long roomId);

  @PostMapping("/pageRoom")
  ResultResponse<PageResult<SysHotRoomDTO>> pageRoom(@RequestBody PageRoomIdCmd cmd);

  @PostMapping("/listRoomTop")
  ResultResponse<PageResult<SysTopRoomDTO>> listRoomTop(@RequestBody RoomTopFixedQryCmd query);

  @PostMapping("/addOrUpdateRoomTop")
  ResultResponse<Void> addOrUpdateRoomTop(@RequestBody RoomTopFixedCmd param);

  @GetMapping("/removeRoomTop")
  ResultResponse<Void> removeRoomTop(@RequestParam("roomId") Long roomId);
}
