"use server";

import { getSettings } from "@/lib/settings";
import { setMaintenanceBypassCookie } from "@/lib/maintenanceBypass";

type MaintenancePreviewState = { error?: string; success?: boolean };

// Bewusst ohne Berechtigungsprüfung — läuft von der öffentlichen
// Wartungsseite aus, wo noch niemand eingeloggt ist. Das Passwort selbst ist
// die Zugriffskontrolle, siehe lib/maintenanceBypass.ts.
export async function verifyMaintenancePreviewAction(
  _prev: MaintenancePreviewState,
  formData: FormData
): Promise<MaintenancePreviewState> {
  const password = String(formData.get("password") || "");
  if (!password) return { error: "Bitte ein Passwort eingeben." };

  const settings = await getSettings();
  const configured = settings.maintenanceMode?.previewPassword || "";
  if (!configured || password !== configured) {
    return { error: "Falsches Passwort." };
  }

  await setMaintenanceBypassCookie(password);
  return { success: true };
}
