import { notFound } from "next/navigation";

import { PromoCodeForm } from "../_components/promo-form/promo-code-form";
import { fetchBackendPromoCodeById } from "../_lib/promo-codes-server-api";

type PageProps = {
  params: Promise<{ id: string }>;
};

export default async function PromoCodeUpdatePage({ params }: PageProps) {
  const { id } = await params;
  const promoId = Number(id);

  if (!Number.isFinite(promoId)) {
    notFound();
  }

  const { promo, errorMessage } = await fetchBackendPromoCodeById(promoId);

  if (errorMessage || !promo) {
    notFound();
  }

  return <PromoCodeForm mode="update" initial={promo} />;
}
