package com.yonge.cooleshow.biz.dal.service;

import com.yonge.cooleshow.biz.dal.dto.BasicUserInfo;
import com.yonge.cooleshow.biz.dal.dto.ImNetworkCustomMessage;
import com.yonge.cooleshow.biz.dal.dto.ImNetworkDeviceControlDto;
import com.yonge.cooleshow.biz.dal.dto.ImNetworkMusicSheetDownloadMessageContent;
import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoom;
import com.yonge.cooleshow.biz.dal.entity.ImNetworkRoomMember;

/**
 * 网络教室成员(ImNetworkRoomMember)表服务接口
 *
 * @author zx
 * @since 2022-03-30 16:36:38
 */
public interface ImService{

    //发送人员变动消息
    void publishMemberChangedMessage(ImNetworkRoomMember roomMember,String serviceProvider) throws Exception;

    //发送display改动通知
    void sendDisplay(ImNetworkRoomMember roomMember, ImNetworkRoom room,String serviceProvider) throws Exception;

    //发送节拍器消息
    void sendImPlayMidiMessage(ImNetworkCustomMessage customMessage) throws Exception;

    //通知学员下载伴奏
    void pushDownloadMusicSheetMsg(ImNetworkMusicSheetDownloadMessageContent content, BasicUserInfo userInfo) throws Exception;

    void pushDeviceResourceMessage(ImNetworkDeviceControlDto deviceControl,BasicUserInfo teacher) throws Exception;

    //用户同意设备控制
    void pushApproveControlDevice(ImNetworkDeviceControlDto deviceControl, ImNetworkRoomMember roomMember
            ,BasicUserInfo student,BasicUserInfo teacher) throws Exception;

    void sendDeviceStatusSync(ImNetworkDeviceControlDto deviceStatusSync, ImNetworkRoomMember roomMember) throws Exception;

    void sendRejectControlDevice(ImNetworkDeviceControlDto deviceControl, ImNetworkRoomMember roomMember, BasicUserInfo teacher) throws Exception;

    void sendQuitRoomMsg(ImNetworkRoomMember roomMember,String serviceProvider) throws Exception;
}

