import { Suspense } from "react";
import type { Metadata } from "next";
import {
  BolumIcerik,
  BolumIcerikSkeleton,
  bolumSayfaMetadata,
  bolumStaticSlugs,
} from "@/features/katalog/components/bolum-icerik";

// Tüm bölümler build sırasında bilinir (veri ancak ingest + deploy ile
// değişir); bilinmeyen slug getBolumBySlug'dan null dönüp notFound()'a düşer.
// (dynamicParams cacheComponents ile uyumsuz olduğundan kullanılamıyor.)
export function generateStaticParams() {
  return bolumStaticSlugs().map((slug) => ({ slug }));
}

export async function generateMetadata({
  params,
}: PageProps<"/bolum/[slug]">): Promise<Metadata> {
  const { slug } = await params;
  return bolumSayfaMetadata(slug, 1);
}

export default function BolumPage({ params }: PageProps<"/bolum/[slug]">) {
  return (
    <Suspense fallback={<BolumIcerikSkeleton />}>
      {params.then(({ slug }) => (
        <BolumIcerik slug={slug} sayfa={1} />
      ))}
    </Suspense>
  );
}
