package com.ym.mec.biz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
import com.ym.mec.biz.dal.entity.ImLiveRoomReservation;
import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
import com.ym.mec.common.page.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * 直播预约记录(ImLiveRoomReservation)表服务接口
 *
 * @author hgw
 * @since 2022-05-24 14:54:05
 */
public interface ImLiveRoomReservationService extends IService<ImLiveRoomReservation> {

    /**
     * 添加直播预约
     */
    void add(ImLiveRoomReservation entity);

    /**
     * 取消预约
     */
    void cancel(ImLiveRoomReservation entity);

    /**
     * 学生端-分页查询直播间
     *
     * @param param 参数
     *              <p> liveState 直播状态 0未开始 1开始 2结束
     */
    PageInfo<ImLiveBroadcastRoomVo> queryPageStudent(Map<String, Object> param);

    /**
     * 预约直播间推送极光
     */
    void push(ImLiveBroadcastRoom room);

    /**
     * 查询直播间预约人数
     *
     * @param roomIdList 房间号
     * @return
     */
    List<ImLiveBroadcastRoomVo> countRoomReservation(List<String> roomIdList);
}

