package com.red.circle.other.app.service.room;

import com.red.circle.common.business.dto.cmd.app.AppFlowCmd;
import com.red.circle.common.business.dto.cmd.app.AppRoomIdCmd;
import com.red.circle.other.app.dto.clientobject.room.RoomBrowseRecordsV2CO;
import com.red.circle.other.app.dto.clientobject.room.RoomCheckStatusCO;
import com.red.circle.other.app.dto.cmd.room.RoomSubscriptionCmd;
import java.util.List;

/**
 * 房间关系.
 *
 * @author pengliang on 2023/9/21
 */
public interface RoomRelationService {

  List<RoomBrowseRecordsV2CO> listUserTrace(AppFlowCmd cmd);

  List<RoomBrowseRecordsV2CO> listUserJoined(AppFlowCmd cmd);

  List<RoomBrowseRecordsV2CO> listUserFollow(AppFlowCmd cmd);

  List<RoomBrowseRecordsV2CO> listUserRecommend(AppFlowCmd cmd);

  void uploadTrace(AppRoomIdCmd cmd);

  Boolean followOrCancelRoom(RoomSubscriptionCmd cmd);

  RoomCheckStatusCO checkStatus(AppRoomIdCmd cmd);

}
