// Lecture du jeu de démonstration officiel livré avec l'application.
//
// Il sert de RÉFÉRENCE à la purge : numéros d'intervention (pour nettoyer une
// organisation réutilisée sans la supprimer), codes et noms d'organisations,
// e-mails, noms de fournisseurs.
//
// ⚠️ Le chemin est résolu depuis `process.cwd()`, comme le contrôle d'intégrité
// de la marque : en développement c'est le dossier du projet, dans le paquet
// Electron c'est `.next/standalone`, où `public/` est recopié. Les deux cas
// résolvent donc le même chemin relatif.

import { readFile } from "node:fs/promises";
import path from "node:path";

import { lireJeuDemo, type JeuDemo } from "./format";

const CHEMIN = "public/demo/jeu-demo.json";

/**
 * Renvoie le jeu de référence, ou `null` s'il est absent ou illisible.
 *
 * Volontairement tolérant : un fichier manquant ne doit pas empêcher la purge de
 * fonctionner en mode « trace », qui n'en a pas besoin. Il dégrade seulement le
 * nettoyage des organisations réutilisées.
 */
export async function jeuDeReference(racine = process.cwd()): Promise<JeuDemo | null> {
  try {
    return lireJeuDemo(await readFile(path.join(racine, CHEMIN), "utf8"));
  } catch {
    return null;
  }
}
