import type { Metadata } from "next";
import { notFound } from "next/navigation";
import { getAllBolumler } from "@/lib/katalog";
import {
  BolumIcerik,
  bolumSayfaMetadata,
  bolumToplamSayfa,
} from "../../bolum-icerik";

// Yalnızca 1'den fazla sayfası olan bölümler için 2..N sayfaları üretilir;
// 1. sayfa taban rota (/bolum/[slug]) olduğundan burada üretilmez.
export function generateStaticParams() {
  return getAllBolumler().flatMap((b) => {
    const toplam = bolumToplamSayfa(b.programSayisi);
    return Array.from({ length: Math.max(0, toplam - 1) }, (_, i) => ({
      slug: b.slug,
      no: String(i + 2),
    }));
  });
}

function sayfaNo(no: string): number | null {
  const n = Number(no);
  return Number.isInteger(n) && n >= 2 ? n : null;
}

export async function generateMetadata({
  params,
}: {
  params: Promise<{ slug: string; no: string }>;
}): Promise<Metadata> {
  const { slug, no } = await params;
  const n = sayfaNo(no);
  if (n == null) return {};
  return bolumSayfaMetadata(slug, n);
}

export default async function BolumSayfaPage({
  params,
}: {
  params: Promise<{ slug: string; no: string }>;
}) {
  const { slug, no } = await params;
  const n = sayfaNo(no);
  if (n == null) notFound();
  return <BolumIcerik slug={slug} sayfa={n} />;
}
