using MessageService.Domain.Entities; using MessageService.Domain.Models; namespace MessageService.Domain.IReposities { public interface IConversationReposity { Task FindByIdAsync(Guid id, CancellationToken cancellationToken = default); Task> ListByUserIdAsync(Guid userId, CancellationToken cancellationToken = default); Task> FindByTargetIdAsync(Guid targetId, CancellationToken cancellationToken = default); Task> FindByStreamKeyAsync(string streamKey, CancellationToken cancellationToken = default); Task FindActiveAsync(Guid userId, Guid targetId, Enums.ChatType chatType, CancellationToken cancellationToken = default); void Create(Conversation conversation); Task> FindAllStreamKeyAsync(Guid userId, CancellationToken cancellationToken = default); } }