package com.ruoyi.project.common.service;

import com.ruoyi.project.common.dto.MessageChatDto;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

import java.util.List;

/**
 * @author jubs
 */
public interface ISseChatEmitterService {


    /**
     * description: createChatRoomConnect 用于 用户 在登录或刷新时，建立聊天室连接，此链接用于服务 该用户是否有新的消息 或者 旧的聊天室
     *
     * @param clientId : 前端创建的连接id
     * @return org.springframework.web.servlet.mvc.method.annotation.SseEmitter
     * @author jubs 😀
     * @date 2024/5/15 9:34
     */
    SseEmitter createChatRoomConnect(String clientId);

    /**
     * description: createChatRoom 用于用户 创建 聊天室，根据报价单 拉取 关联用户
     *
     * @param dto: 报价单及相关信息
     * @return void
     * @throws
     * @author jubs 😀
     * @date 2024/5/15 9:37
     */
    void createChatRoom(MessageChatDto dto);

    /**
     * description: sendChatMessageToClientId  根据连接 发送信息
     *
     * @param clientId: 连接id
     * @return void
     * @throws
     * @author jubs 😀
     * @date 2024/5/15 9:38
     */
    void sendChatMessageToClientId(Long clientId);

    void sentChatMessageToClientIdList(List<Long> userOnlineId, boolean popUpFlag, MessageChatDto dto);


    /**
     * description: toSendInputMessage 服务于 聊天室 用户A 发送 文本信息、图片信息  通过聊天室 发送给所有人
     *
     * @param dto: 聊天室信息 及 消息信息
     * @author jubs 😀
     * @date 2024/5/15 9:40
     */
    void toSendInputMessage(MessageChatDto dto);



}
