// Historique de parties (table game_history). No-op si pas de DB. import { desc, eq } from "drizzle-orm" import { db } from "./index" import { gameHistory } from "./schema" export interface GameResultEntry { name: string score: number } export async function saveGameHistory( roomCode: string, modes: string[], results: GameResultEntry[] ): Promise { if (!db) { return } await db.insert(gameHistory).values({ roomCode, modes, results }) } export interface GameHistoryRow { id: string playedAt: string modes: string[] results: GameResultEntry[] } export async function listGameHistory( roomCode: string, limit = 10 ): Promise { if (!db) { return [] } const rows = await db .select({ id: gameHistory.id, playedAt: gameHistory.playedAt, modes: gameHistory.modes, results: gameHistory.results, }) .from(gameHistory) .where(eq(gameHistory.roomCode, roomCode)) .orderBy(desc(gameHistory.playedAt)) .limit(limit) return rows.map((r) => ({ id: r.id, playedAt: r.playedAt instanceof Date ? r.playedAt.toISOString() : String(r.playedAt), modes: (r.modes as string[]) ?? [], results: (r.results as GameResultEntry[]) ?? [], })) }