import { Metadata } from "next";
import { notFound } from "next/navigation";

import {
  Header,
  CommunesList,
  DepartementsList,
  RegionList,
} from "@/components/index";

import departements, {
  getSlugFromDepartement,
  getDepartementFromSlug,
} from "@/lib/departements";
import { getRegionFromCode } from "@/lib/regions";

export const metadata: Metadata = {
  title: "Annuaire",
  description: "L'annuaire collaboratif des professionnels de la santé",
};

export async function generateStaticParams() {
  return departements.map((departement) => ({
    departement: getSlugFromDepartement(departement),
  }));
}

export default function DepartementPage({
  params,
}: {
  params: { regionSlug: string; departementSlug: string };
}) {
  const departement = getDepartementFromSlug(params.departementSlug);
  if (!departement) return notFound();
  const region = getRegionFromCode(departement.region);
  if (!region) return notFound();

  return (
    <>
      <Header searchField={true} />
      <RegionList selected={region} />
      <hr></hr>
      <DepartementsList selected={departement} region={region} />
      <hr></hr>
      <CommunesList departement={departement} />
    </>
  );
}
