"use server";

import { revalidatePath } from "next/cache";
import { NotdienstAlertStatus } from "@prisma/client";
import { prisma } from "@/lib/prisma";

export async function confirmAlertAction(token: string) {
  try {
    const alert = await prisma.notdienstAlert.findUnique({
      where: { confirmationToken: token },
    });

    if (!alert) {
      return { error: "Ungültiger Bestätigungs-Link." };
    }

    if (alert.status !== NotdienstAlertStatus.PENDING) {
      return { error: "Dieser Alarm wurde bereits bestätigt oder abgebrochen." };
    }

    await prisma.notdienstAlert.update({
      where: { id: alert.id },
      data: {
        status: NotdienstAlertStatus.CONFIRMED,
        confirmedAt: new Date(),
      },
    });

    revalidatePath("/dashboard");
    return { success: true };
  } catch {
    return { error: "Fehler bei der Bestätigung." };
  }
}
