import type { Metadata } from "next";
import { notFound } from "next/navigation";
import ServiceDetail from "@/components/ServiceDetail";
import { getService, getServicesByCategory } from "@/lib/services";

type Params = { slug: string };

/**
 * Liste des slugs ayant leur propre page statique enrichie SEO.
 * On les exclut de la génération du dynamic [slug] pour éviter le conflit.
 */
const STATIC_OVERRIDES = new Set([
  "creation-de-societe",
  "depot-des-comptes",
  "dissolution-de-societe",
]);

export function generateStaticParams() {
  return getServicesByCategory("societes")
    .filter((s) => !STATIC_OVERRIDES.has(s.slug))
    .map((s) => ({ slug: s.slug }));
}

export async function generateMetadata({
  params,
}: {
  params: Promise<Params>;
}): Promise<Metadata> {
  const { slug } = await params;
  const service = getService(slug);
  if (!service || service.category !== "societes") return {};
  return {
    title: `${service.title} | Socialex`,
    description: service.excerpt,
    alternates: { canonical: `/societes/${service.slug}` },
  };
}

export default async function SocietesServicePage({
  params,
}: {
  params: Promise<Params>;
}) {
  const { slug } = await params;
  const service = getService(slug);
  if (!service || service.category !== "societes") notFound();

  return <ServiceDetail service={service} />;
}
