<?php
// admin/formulare/formular_delete.php

session_start();
require_once __DIR__ . '/../../includes/init.php';
require_once __DIR__ . '/../../auth/AuthController.php';

$auth = new AuthController();
if (!$auth->isLoggedIn()) {
    header('Location: ' . $adminLoginPath);
    exit;
}

// Seitentitel
$title = 'Formular löschen';

// DB-Verbindung
$db = Database::getInstance();

// Formular-ID aus GET
$formularId = isset($_GET['id']) ? (int)$_GET['id'] : 0;

// ID-Prüfung
if ($formularId <= 0) {
    $_SESSION['error'] = 'Ungültige Formular-ID.';
    ErrorLogger::log("Ungültige Formular-ID beim Löschversuch: $formularId", 'WARN');
    header('Location: formulare.php');
    exit;
}

try {
    $db->beginTransaction();

    // Zugeordnete Felder löschen
    $stmt = $db->prepare("DELETE FROM form_fields WHERE form_id = ?");
    $stmt->execute([$formularId]);
    ErrorLogger::logSqlSuccess("Form-Felder für Formular $formularId gelöscht");

    // Zugeordnete Listen löschen
    $stmt = $db->prepare("DELETE FROM form_list WHERE form_id = ?");
    $stmt->execute([$formularId]);
    ErrorLogger::logSqlSuccess("Form-Listen für Formular $formularId gelöscht");

    // Formular selbst löschen
    $stmt = $db->prepare("DELETE FROM forms WHERE id = ?");
    $stmt->execute([$formularId]);
    ErrorLogger::log("Formular $formularId wurde gelöscht", 'INFO');

    $db->commit();

    $_SESSION['success'] = 'Formular wurde erfolgreich gelöscht.';
} catch (Exception $e) {
    $db->rollBack();
    ErrorLogger::logSqlError("Fehler beim Löschen von Formular $formularId: " . $e->getMessage());
    $_SESSION['error'] = 'Fehler beim Löschen des Formulars.';
}

header('Location: formulare.php');
exit;

