import { notFound } from "next/navigation";

import { MacroAssetClassForm } from "../_components/macro-asset-class-form/macro-asset-class-form";
import {
  fetchBackendMacroAssetClassById,
  fetchModuleUsageMap,
} from "../_lib/macro-asset-class-server-api";

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

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

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

  const [{ macroAssetClass }, moduleUsage] = await Promise.all([
    fetchBackendMacroAssetClassById(recordId),
    fetchModuleUsageMap(recordId),
  ]);

  if (!macroAssetClass) {
    notFound();
  }

  return (
    <MacroAssetClassForm
      mode="update"
      initial={macroAssetClass}
      moduleUsage={moduleUsage}
    />
  );
}
