import { GameSnapshotAggregate, SnapshotTrigger } from '../Game/GameSnapshotAggregate'; export interface IGameSnapshotRepository { /** * Save a game state snapshot */ save(snapshot: GameSnapshotAggregate): Promise; /** * Get the most recent snapshot for a game */ findLatestByGameId(gameId: string): Promise; /** * Get all snapshots for a game */ findByGameId(gameId: string): Promise; /** * Get snapshots by trigger type */ findByGameAndTrigger(gameId: string, trigger: SnapshotTrigger): Promise; /** * Get snapshot at specific turn */ findByGameAndTurn(gameId: string, turnNumber: number): Promise; /** * Delete old snapshots (keep only last N) */ deleteOldSnapshots(gameId: string, keepCount: number): Promise; /** * Delete all snapshots for a game */ deleteByGameId(gameId: string): Promise; }