import { json } from '@sveltejs/kit';
import { lireFiltres, rechercher } from '$serveur/requetes';
import type { RequestHandler } from './$types';

/**
 * `GET /api/textes` — liste filtrable.
 *
 * Mêmes paramètres que la page de recherche : `q`, `statut`, `theme`, `type`,
 * `impact`, `guadeloupe`, `confiance`, `from`, `to`, `tri`, `page`. Les
 * paramètres multivalués acceptent la répétition (`?theme=sante&theme=social`)
 * comme la virgule (`?theme=sante,social`).
 *
 * Ouverte sans clé : ces données sont publiques et proviennent de sources
 * publiques. Le cache est court — le pipeline peut écrire à tout moment.
 */
export const GET: RequestHandler = async ({ url }) => {
	const filtres = lireFiltres(url.searchParams);
	const resultats = rechercher(filtres);

	return json(
		{
			filtres,
			total: resultats.total,
			page: resultats.page,
			pages: resultats.pages,
			textes: resultats.textes,
			facettes: resultats.facettes
		},
		{
			headers: {
				'cache-control': 'public, max-age=300',
				'access-control-allow-origin': '*'
			}
		}
	);
};
