import { GameAggregate } from '../Game/GameAggregate'; <<<<<<< HEAD import { IPaginatedRepository } from './IBaseRepository'; export interface IGameRepository extends IPaginatedRepository { // Game-specific methods findByGameCode(gamecode: string): Promise; ======= export interface IGameRepository { create(game: Partial): Promise; findByPage(from: number, to: number): Promise<{ games: GameAggregate[], totalCount: number }>; findByPageIncludingDeleted(from: number, to: number): Promise<{ games: GameAggregate[], totalCount: number }>; findById(id: string): Promise; findByIdIncludingDeleted(id: string): Promise; findByGameCode(gamecode: string): Promise; search(query: string, limit?: number, offset?: number): Promise<{ games: GameAggregate[], totalCount: number }>; searchIncludingDeleted(query: string, limit?: number, offset?: number): Promise<{ games: GameAggregate[], totalCount: number }>; update(id: string, update: Partial): Promise; delete(id: string): Promise; softDelete(id: string): Promise; // Game-specific methods >>>>>>> 83fad59878db015ec8d86bdec1ecbbca0baddfd2 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, started: boolean, finished?: boolean, winner?: string): Promise; }