using Knot.Contracts.Conversations.Domain; namespace Knot.Contracts.Conversations.Domain; public interface IChatRepository { void Add(Chat chat); void Update(Chat chat); void Remove(Chat chat); Task GetByIdAsync(Guid id, CancellationToken cancellationToken); Task GetFavoritesAsync(Guid userId, CancellationToken cancellationToken); Task> GetUserChatsAsync(Guid userId, CancellationToken cancellationToken); } public interface IFolderRepository { void Add(Folder folder); void Update(Folder folder); void Remove(Folder folder); Task GetByIdAsync(Guid id, CancellationToken cancellationToken); Task> GetUserFoldersAsync(Guid userId, CancellationToken cancellationToken); } public interface IUserChatSettingsRepository { void Add(UserChatSettings settings); void Update(UserChatSettings settings); void Remove(UserChatSettings settings); void RemoveRange(IEnumerable settings); Task GetAsync(Guid userId, Guid chatId, CancellationToken cancellationToken); Task> GetByUserIdAsync(Guid userId, CancellationToken cancellationToken); } public interface IUserFolderSettingsRepository { Task GetByUserIdAsync(Guid userId, CancellationToken cancellationToken); Task UpdateAsync(UserFolderSettings settings, CancellationToken cancellationToken); Task RemoveByUserIdAsync(Guid userId, CancellationToken cancellationToken); }