package com.red.circle.other.infra.database.mongo.service.live;

import com.red.circle.other.infra.database.mongo.entity.live.RoomUserBlacklist;
import com.red.circle.other.inner.model.cmd.live.RoomBlacklistQryCmd;
import java.util.List;
import java.util.Set;

/**
 * 房间用户黑名单
 *
 * @author houyong on 2020/12/3
 */
public interface RoomUserBlacklistService {

  /**
   * 添加黑名单.
   */
  void add(RoomUserBlacklist roomUserBlacklist);

  /**
   * 获取黑名单信息.
   */
  List<RoomUserBlacklist> listBlacklist(Long roomId, Long lastId, Integer limit);

  /**
   * 获取黑名单信息.
   */
  List<RoomUserBlacklist> listOps(RoomBlacklistQryCmd qryCmd);

  /**
   * 移除黑名单.
   */
  void removeBlack(Long roomId, Long cmdOriginUserId);

  /**
   * 用户是否存在放假黑名单.
   */
  Boolean exists(Long roomId, Long userId);

  /**
   * 获取用户黑名单列表
   * @param cmdOriginUserId
   * @param roomIds
   * @return
   */
  List<RoomUserBlacklist> getBlackRoom(Long cmdOriginUserId, Set<Long> roomIds);
}
