package com.red.circle.other.app.inner.service.live;

import com.red.circle.framework.dto.PageResult;
import com.red.circle.other.inner.enums.live.RoomUserRolesEnum;
import com.red.circle.other.inner.model.cmd.live.MemberRolesQryCmd;
import com.red.circle.other.inner.model.cmd.room.RoomMemberOpsPageQryCmd;
import com.red.circle.other.inner.model.dto.live.RoomMemberDTO;
import java.util.Map;

/**
 * 房间成员.
 *
 * @author pengliang on 2023/11/22
 */
public interface RoomMemberClientService {

  /**
   * 成员分页列表(运营后台).
   */
  PageResult<RoomMemberDTO> pageOps(RoomMemberOpsPageQryCmd qryCmd);

  /**
   * 获取指定房间指定用户.
   */
  RoomMemberDTO getMember(Long roomId, Long userId);

  /**
   * 获取成员角色.
   */
  RoomUserRolesEnum getMemberRoles(Long roomId, Long userId);

  /**
   * 获取成员角色.
   */
  Map<Long, RoomUserRolesEnum> mapMemberRoles(MemberRolesQryCmd qryCmd);

  /**
   * 添加成员.
   */
  void add(RoomMemberDTO dto);

  /**
   * 修改成员角色.
   */
  void updateRole(Long id, String role, Long updateUser);

  /**
   * 删除指定记录.
   */
  boolean deleteById(Long id);

}
