package com.yushu.system.service;

import java.util.List;
import java.util.Map;
import com.yushu.system.domain.SysConversation;

/**
 * 会话Service接口
 * 
 * @author yushu
 * @date 2025-11-12
 */
public interface ISysConversationService 
{
    /**
     * 查询会话
     * 
     * @param conversationId 会话主键
     * @return 会话
     */
    public SysConversation selectSysConversationByConversationId(String conversationId);

    /**
     * 查询会话列表
     * 
     * @param sysConversation 会话
     * @return 会话集合
     */
    public List<SysConversation> selectSysConversationList(SysConversation sysConversation);

    /**
     * 获取用户的会话列表
     * 
     * @return 会话列表
     */
    public List<Map<String, Object>> getUserConversationList();

    /**
     * 新增会话
     * 
     * @param sysConversation 会话
     * @return 结果
     */
    public int insertSysConversation(SysConversation sysConversation);

    /**
     * 修改会话
     * 
     * @param sysConversation 会话
     * @return 结果
     */
    public int updateSysConversation(SysConversation sysConversation);

    /**
     * 批量删除会话
     * 
     * @param conversationIds 需要删除的会话主键集合
     * @return 结果
     */
    public int deleteSysConversationByConversationIds(String[] conversationIds);

    /**
     * 删除会话信息
     * 
     * @param conversationId 会话主键
     * @return 结果
     */
    public int deleteSysConversationByConversationId(String conversationId);

    /**
     * 创建或获取私聊会话
     * 
     * @param otherUserId 对方用户ID
     * @return 会话ID
     */
    public String createOrGetPrivateConversation(Long otherUserId);

    /**
     * 更新会话成员备注
     * 
     * @param conversationId 会话ID
     * @param remarkName 备注名称
     * @return 结果
     */
    public int updateMemberRemark(String conversationId, String remarkName);

    /**
     * 获取会话的所有成员ID
     * 
     * @param conversationId 会话ID
     * @return 成员ID列表
     */
    public List<Long> getConversationMemberIds(String conversationId);
}
