import { NextRequest, NextResponse } from "next/server";
import fs from "fs/promises";
import { CURATED_FONTS, isCuratedFontKey } from "@/lib/fonts";
import { resolveCuratedFontPath } from "@/lib/fonts-server";

export async function GET(
  _req: NextRequest,
  { params }: { params: Promise<{ key: string }> },
) {
  const { key } = await params;
  if (!isCuratedFontKey(key)) {
    return NextResponse.json({ error: "Unknown font" }, { status: 404 });
  }

  const fontPath = resolveCuratedFontPath(key);
  try {
    const buf = await fs.readFile(fontPath);
    const meta = CURATED_FONTS.find((f) => f.key === key)!;
    return new NextResponse(buf, {
      headers: {
        "Content-Type": "font/ttf",
        "Content-Disposition": `inline; filename="${meta.file}"`,
        "Cache-Control": "public, max-age=86400, immutable",
      },
    });
  } catch {
    return NextResponse.json({ error: "Font file not found" }, { status: 404 });
  }
}
