"use server";

import { revalidatePath } from "next/cache";
import { hasPermission } from "@/lib/adminAuth";
import { runDatabaseBackup } from "@/lib/backup";

type BackupState = { error?: string; success?: boolean; sizeBytes?: number };

export async function runBackupNowAction(): Promise<BackupState> {
  if (!(await hasPermission("settings"))) return { error: "Keine Berechtigung." };
  try {
    const result = await runDatabaseBackup();
    revalidatePath("/de/admin/settings");
    return { success: true, sizeBytes: result.sizeBytes };
  } catch (err) {
    return { error: err instanceof Error ? err.message : "Sicherung fehlgeschlagen." };
  }
}
