import { notFound } from "next/navigation";
import { PageHeader } from "@/components/shared/page-header";
import { getDlmSite, getDlmConnectors } from "@/features/dlm/api";
import { getLocation } from "@/features/locations/api";
import { DlmSiteDetailView } from "@/features/dlm/site-detail";
import { CsmsApiError } from "@/lib/csms-api";

export const metadata = { title: "DLM Site Details" };
export default async function DlmSitePage({ params }: { params: Promise<{ id: string }> }) {
  const { id } = await params;
  let site;
  try { site = await getDlmSite(id); }
  catch (error) { if (error instanceof CsmsApiError && error.status === 404) notFound(); throw error; }
  const [connectors, location] = await Promise.allSettled([getDlmConnectors(id), getLocation(site.locationId)]);
  return <><PageHeader title={site.name} parent={{ label: "Chargepoint DLM", href: "/chargepoint-dlm" }} /><DlmSiteDetailView key={id} site={site} locationName={location.status === "fulfilled" ? location.value.name : site.locationId} connectors={connectors.status === "fulfilled" ? connectors.value : null} connectorError={connectors.status === "rejected" ? "The connector list could not be loaded. Refresh and try again." : ""} /></>;
}
