LANCommander/LANCommander.SDK/Clients/IChatClient.cs
Pat Hartl 66abc6e59e Implement infinite loading with chat thread
- Chat messages are now loaded based on scroll position
- Read status is now updated and set by last message read
- Reworked script importing by using ScriptProvider
2026-01-11 14:38:24 -06:00

22 lines
No EOL
916 B
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LANCommander.SDK.Models;
namespace LANCommander.SDK.Services;
public interface IChatClient
{
Task<ChatThread> GetThreadAsync(Guid threadId);
Task<Guid> StartThreadAsync(IEnumerable<string> userIdentifiers);
Task<IEnumerable<ChatThread>> GetThreadsAsync();
Task<IEnumerable<User>> GetUsersAsync();
Task ReceiveMessagesAsync(Guid threadId, IEnumerable<ChatMessage> messages);
Task ReceiveMessageAsync(Guid threadId, ChatMessage message);
Task StartTypingAsync(Guid threadId, string userId);
Task StopTypingAsync(Guid threadId, string userId);
Task SendMessageAsync(Guid threadId, string message);
Task UpdatedReadStatus(Guid threadId);
Task<InfiniteResponse<ChatMessage>> GetMessagesAsync(Guid threadId, Guid? cursor, int count);
Task<int> GetUnreadMessageCountAsync(Guid threadId);
}