import { redirect } from "next/navigation";
import { isAdminSession, hasPermission, getAllPermissions } from "@/lib/adminAuth";
import { getContractTemplateSections } from "@/lib/actions/contractTemplates";
import { AdminNavLinks } from "@/components/admin/AdminNavLinks";
import { AdminPageHeader } from "@/components/admin/AdminPageHeader";
import { ContractTemplateEditor } from "@/components/admin/ContractTemplateEditor";

export const dynamic = "force-dynamic";

export default async function ContractTemplatesPage() {
  if (!(await isAdminSession())) redirect("/de/login?next=%2Fde%2Fadmin%2Fcontract-templates");
  if (!(await hasPermission("contract_templates"))) redirect("/de/account");
  const permissions = await getAllPermissions();

  const [standardSections, tfpSections] = await Promise.all([
    getContractTemplateSections("standard"),
    getContractTemplateSections("tfp"),
  ]);

  return (
    <main className="px-6 pt-4 pb-24 max-w-4xl mx-auto">
      <AdminNavLinks permissions={permissions} />
      <AdminPageHeader
        title="Vertragsvorlagen"
        subtitle='Fließtext-Abschnitte für den Standard- und den TFP-Vertrag. Rein datengetriebene Angaben (Parteien, Preis, Termin, Nutzungsrechte-Auswahl, Model-/Stylist-Daten) stehen nicht hier, sondern kommen weiterhin direkt aus dem jeweiligen Auftrag/Vertrag. Änderungen wirken sich nur auf künftig erstellte Verträge aus.'
      />

      <ContractTemplateEditor type="standard" title="Standard-Vertrag (kostenpflichtig)" sections={standardSections} />
      <ContractTemplateEditor type="tfp" title="TFP-Vertrag" sections={tfpSections} />
    </main>
  );
}
