import { notFound } from "next/navigation";
import type { Metadata } from "next";
import BusinessDetailPage from "@/components/business/BusinessDetailPage";
import { getLocationBySlug, getFeaturedLocationSlugs } from "@/db/repositories/locations";
import { getBusinessBySlug } from "@/data/sample-businesses";

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

export async function generateStaticParams() {
  const slugs = getFeaturedLocationSlugs(200);
  return slugs.map((slug) => ({ slug }));
}

export async function generateMetadata({ params }: PageProps): Promise<Metadata> {
  const { slug } = await params;
  const business = getLocationBySlug(slug) ?? getBusinessBySlug(slug);
  if (!business) return { title: "Bulunamadı" };
  return {
    title: `${business.name} — ${business.categoryTitle} | yakınımda.tr`,
    description: business.description,
  };
}

export default async function IsletmePage({ params }: PageProps) {
  const { slug } = await params;
  const business = getLocationBySlug(slug) ?? getBusinessBySlug(slug);
  if (!business) notFound();

  return <BusinessDetailPage business={business} fromDb={!!getLocationBySlug(slug)} />;
}
