import { NextRequest, NextResponse } from "next/server"; import { getDb } from "@/lib/db"; import { all, get as dbGet } from "@/lib/db/helpers"; import { parseJsonField } from "@/lib/utils"; const SECTION_MAP: Record unknown[]> = { hero: () => all(getDb().prepare("SELECT * FROM hero_content ORDER BY id")), overview: () => all>(getDb().prepare("SELECT * FROM overview_content ORDER BY id")) .map((row) => parseJsonField(row, "stat_json")), evaluation: () => all(getDb().prepare("SELECT * FROM evaluation_sections ORDER BY sort_order, id")), research: () => all>(getDb().prepare("SELECT * FROM research_sections ORDER BY sort_order, id")) .map((row) => parseJsonField(row, "tags_json")), participation: () => all(getDb().prepare("SELECT * FROM participation_info ORDER BY sort_order, id")), venue: () => all(getDb().prepare("SELECT * FROM venue_host_info ORDER BY id")), policies: () => all(getDb().prepare("SELECT * FROM policy_items ORDER BY sort_order, id")), contact: () => all(getDb().prepare("SELECT * FROM contact_info ORDER BY sort_order, id")), other: () => all(getDb().prepare("SELECT * FROM other_information ORDER BY id")), announcements: () => all(getDb().prepare("SELECT * FROM announcements ORDER BY published_at DESC, id DESC")), "academic-references": () => all>(getDb().prepare("SELECT * FROM academic_references ORDER BY sort_order, id")) .map((row) => parseJsonField(row, "tags_json")), "metric-explanations": () => all(getDb().prepare("SELECT * FROM metric_explanations ORDER BY id")), }; export async function GET( _req: NextRequest, { params }: { params: Promise<{ section: string }> } ) { const { section } = await params; const handler = SECTION_MAP[section]; if (!handler) return NextResponse.json({ error: "unknown section" }, { status: 404 }); return NextResponse.json({ section, items: handler() }); }