import { Suspense } from "react";
import type { Metadata } from "next";
import { notFound } from "next/navigation";
import {
  BolumIcerik,
  BolumIcerikSkeleton,
  bolumSayfaMetadata,
  bolumSayfaStaticParams,
} from "@/features/katalog/components/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 bolumSayfaStaticParams();
}

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

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

export default function BolumSayfaPage({
  params,
}: PageProps<"/bolum/[slug]/sayfa/[no]">) {
  return (
    <Suspense fallback={<BolumIcerikSkeleton />}>
      {params.then(({ slug, no }) => {
        const n = sayfaNo(no);
        if (n == null) notFound();
        return <BolumIcerik slug={slug} sayfa={n} />;
      })}
    </Suspense>
  );
}
