import { ChatAggregate } from '../Chat/ChatAggregate'; import { ChatArchiveAggregate } from '../Chat/ChatArchiveAggregate'; import { IBaseRepository } from './IBaseRepository'; export interface IChatRepository extends IBaseRepository { // Pagination operations with proper typing findByPage(from: number, to: number): Promise<{ chats: ChatAggregate[], totalCount: number }>; findByPageIncludingDeleted(from: number, to: number): Promise<{ chats: ChatAggregate[], totalCount: number }>; // Chat-specific methods findByUserId(userId: string): Promise; findByUserIdIncludingDeleted(userId: string): Promise; findByGameId(gameId: string): Promise; findActiveChatsForUser(userId: string): Promise; findInactiveChats(inactivityMinutes: number): Promise; archiveChat(chat: ChatAggregate): Promise; getArchivedChat(chatId: string): Promise; restoreFromArchive(chatId: string): Promise; }