import { notFound } from "next/navigation";
import type { Metadata } from "next";
import SearchPage from "@/components/search/SearchPage";
import { categories, getCategoryBySlug } from "@/data/categories";

interface PageProps {
  params: Promise<{ slug: string }>;
}

export async function generateStaticParams() {
  return categories.map((category) => ({ slug: category.slug }));
}

export async function generateMetadata({ params }: PageProps): Promise<Metadata> {
  const { slug } = await params;
  const category = getCategoryBySlug(slug);
  if (!category) return { title: "Bulunamadı" };

  return {
    title: `${category.searchTitle} — En Yakın Sonuçlar | yakınımda.tr`,
    description: category.seoDescription,
    keywords: category.keywords,
    openGraph: {
      title: category.searchTitle,
      description: category.seoDescription,
      url: `https://yakinimda.tr/${category.slug}`,
    },
  };
}

export default async function CategoryPage({ params }: PageProps) {
  const { slug } = await params;
  const category = getCategoryBySlug(slug);
  if (!category) notFound();

  return <SearchPage category={category} />;
}
