import { basculerFacette, lireFiltres, rechercher } from '$serveur/requetes';
import type { PageServerLoad } from './$types';

/**
 * Recherche à facettes — rendu serveur, jamais prérendue.
 *
 * Les facettes vivent dans `url.searchParams` : une URL de recherche est
 * partageable et se recharge à l'identique. Le prérendu interdit d'y accéder,
 * c'est pourquoi cette route reste en rendu serveur (§3bis).
 */
export const load: PageServerLoad = async ({ url }) => {
	const filtres = lireFiltres(url.searchParams);
	const resultats = rechercher(filtres);

	return {
		filtres,
		resultats,
		// Les liens de facette sont calculés côté serveur : la page fonctionne
		// entièrement sans JavaScript.
		liens: Object.fromEntries(
			(['statut', 'theme', 'type', 'impact', 'guadeloupe', 'confiance'] as const).map(
				(champ) => [
					champ,
					Object.fromEntries(
						resultats.facettes[champ === 'guadeloupe' ? 'guadeloupe' : champ].map((f) => [
							f.valeur,
							basculerFacette(filtres, champ, f.valeur)
						])
					)
				]
			)
		)
	};
};
