import { GameAggregate, GameState } from '../Game/GameAggregate'; import { IPaginatedRepository } from './IBaseRepository'; export interface IGameRepository extends IPaginatedRepository { // Game-specific methods findByGameCode(gamecode: string): Promise; findActiveGames(): Promise; findGamesByPlayer(playerId: string): Promise; findWaitingGames(): Promise; findFinishedGames(from?: number, to?: number): Promise<{ games: GameAggregate[], totalCount: number }>; addPlayerToGame(gameId: string, playerId: string): Promise; removePlayerFromGame(gameId: string, playerId: string): Promise; updateGameState(gameId: string, state: GameState, winner?: string): Promise; }