import type { Metadata } from "next";
import { draftMode } from "next/headers";
import { getCompanySettings, type CompanySettings } from "../lib/payload";
import { LiveCompanySettingsPreviewClient } from "./components/LiveCompanySettingsPreviewClient";

export const metadata: Metadata = {
  title: "Firmendaten-Vorschau",
  robots: { index: false, follow: false },
};

const FALLBACK: CompanySettings = {
  sellerName: "",
  sellerStreet: "",
  sellerZip: "",
  sellerCity: "",
  sellerCountry: "",
  sellerEmail: "",
  vatId: "",
  taxRatePercent: 19,
  bankDetails: null,
};

// Entered exclusively via CompanySettings.ts's admin.livePreview.url (a
// Payload-admin-only iframe target, see buildPreviewUrl()/api/preview) —
// not a page a real visitor would ever land on. Unlike email-templates
// there's no draft/published distinction here (company-settings has no
// content-versioning concept, it's just the current row) — the initial
// fetch is the same live data getCompanySettings() always returns,
// useLivePreview() takes over from there as the admin edits fields.
export default async function CompanySettingsPreviewPage() {
  await draftMode();
  const initialSettings = (await getCompanySettings()) ?? FALLBACK;
  return <LiveCompanySettingsPreviewClient initialSettings={initialSettings} />;
}
