using XiangYi.Application.DTOs.Requests; using XiangYi.Application.DTOs.Responses; namespace XiangYi.Application.Interfaces; /// /// 聊天服务接口 /// public interface IChatService { /// /// 发送消息 /// /// 发送者ID /// 发送消息请求 /// 发送消息响应 Task SendMessageAsync(long senderId, SendMessageRequest request); /// /// 获取会话列表 /// /// 用户ID /// 会话列表 Task> GetSessionsAsync(long userId); /// /// 获取消息列表 /// /// 当前用户ID /// 获取消息请求 /// 消息分页列表 Task> GetMessagesAsync(long userId, GetMessagesRequest request); /// /// 标记消息已读 /// /// 用户ID /// 会话ID /// 标记已读的消息数量 Task MarkMessagesAsReadAsync(long userId, long sessionId); /// /// 获取未读消息总数 /// /// 用户ID /// 未读消息数 Task GetUnreadCountAsync(long userId); /// /// 请求交换微信 /// /// 发送者ID /// 交换微信请求 /// 交换请求响应 Task ExchangeWeChatAsync(long senderId, ExchangeWeChatRequest request); /// /// 请求交换照片 /// /// 发送者ID /// 交换照片请求 /// 交换请求响应 Task ExchangePhotoAsync(long senderId, ExchangePhotoRequest request); /// /// 响应交换请求 /// /// 响应者ID /// 响应请求 /// 交换响应结果 Task RespondExchangeAsync(long userId, RespondExchangeRequest request); /// /// 获取或创建会话 /// /// 用户1 ID /// 用户2 ID /// 会话ID Task GetOrCreateSessionAsync(long userId1, long userId2); /// /// 检查用户是否有权限访问会话 /// /// 用户ID /// 会话ID /// 是否有权限 Task CanAccessSessionAsync(long userId, long sessionId); /// /// 删除会话(软删除,仅对当前用户隐藏) /// /// 用户ID /// 会话ID /// Task DeleteSessionAsync(long userId, long sessionId); }