export type Region = 'GUADELOUPE' | 'MARTINIQUE' | 'GUYANE' | 'REUNION';
export type Categorie = 'MONUMENT' | 'LIEU';
export type Difficulte = 'FACILE' | 'MOYEN' | 'DIFFICILE' | 'EXPERT';

export interface Coordonnees {
	lat: number;
	lon: number;
}

export interface Indice {
	niveau: number;
	texte: string;
}

export interface Photo {
	url: string;
	credit: string;
	alt: string;
}

/** Lieu complet — serveur uniquement, jamais exposé tel quel au client. */
export interface Lieu {
	id: string;
	nom: string;
	nom_creole: string;
	region: Region;
	commune: string;
	coordonnees: Coordonnees;
	categorie: Categorie;
	difficulte: Difficulte;
	wikidata_id: string | null;
	photo: Photo;
	indices: Indice[];
}

/** Lieu SANITISÉ envoyé par GET /api/round (aucune coordonnée, commune, région, wikidata_id). */
export interface RoundPlace {
	id: string;
	nom: string;
	nom_creole: string;
	categorie: Categorie;
	difficulte: Difficulte;
	photo: Photo;
	indices: Indice[];
}

/** Réponse de POST /api/guess : la vérité n'est révélée qu'après soumission. */
export interface GuessResult {
	distanceKm: number | null;
	score: number;
	coordonnees: Coordonnees;
	commune: string;
	region: Region;
	nom: string;
	nom_creole: string;
	wikidata_id: string | null;
}

/** Entrée du catalogue Explorer : coords arrondies à 0.05°, mode sans score. */
export interface ExplorerLieu {
	id: string;
	nom: string;
	nom_creole: string;
	region: Region;
	commune: string;
	coordonnees: Coordonnees;
	categorie: Categorie;
	difficulte: Difficulte;
	wikidata_id: string | null;
	photo: Photo;
}

/** Réponse normalisée de GET /api/wiki/[qid]. */
export interface WikiSummary {
	qid: string;
	title: string;
	extract: string;
	url: string;
	thumbnail: string | null;
}

export type GameMode = 'monument' | 'lieu' | 'defi';
