<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// ==========================================
// 1. KONFIGURATION
// ==========================================
$api_key     = 'API KEY einfügen'; 
$template_id = 1;                // Die ID deines Templates
$api_url     = 'API URL EINFÜGEN'; 
// ==========================================

if ($_SERVER["REQUEST_METHOD"] !== "POST") {
    die("Ungültige Anfrage. Bitte nutze das Formular.");
}

$data = [
    "act_name"       => trim($_POST['act_name'] ?? ''),
    "person_count"   => intval($_POST['person_count'] ?? 1),
    "duration"       => intval($_POST['duration'] ?? 0),
    "description"    => trim($_POST['description'] ?? ''),
    "tech_needs"     => trim($_POST['tech_needs'] ?? ''),
    "contact_name"   => trim($_POST['contact_name'] ?? ''),
    "email"          => filter_var(trim($_POST['email'] ?? ''), FILTER_VALIDATE_EMAIL),
    "total_price"    => trim($_POST['total_price'] ?? ''),
    "terms_accepted" => isset($_POST['terms']) ? true : false
];

if (empty($api_key) || $api_key === 'DEIN_DOCUSEAL_API_KEY') {
    die("Konfigurationsfehler: API-Key wurde nicht hinterlegt.");
}
if (!$data['email'] || empty($data['act_name']) || empty($data['contact_name'])) {
    die("Validierungsfehler: Bitte fülle alle Pflichtfelder korrekt aus.");
}
if (!$data['terms_accepted']) {
    die("Validierungsfehler: Die Teilnahmebedingungen müssen akzeptiert werden.");
}

$payload = [
    "template_id" => $template_id,
    "send_email"  => false, 
    "submitters"  => [
        [
            "email" => $data['email'],
            "name"  => $data['contact_name'],
            "fields" => [
                [
                    "name" => "act_name",
                    "default_value" => $data['act_name']
                ],
                [
                    "name" => "ansprechpartner",
                    "default_value" => $data['contact_name']
                ],
                [
                    "name" => "email",
                    "default_value" => $data['email']
                ],
                [
                    "name" => "anzahl_personen",
                    "default_value" => (string)$data['person_count']
                ],
                [
                    "name" => "dauer_minuten",
                    "default_value" => (string)$data['duration']
                ],
                [
                    "name" => "beschreibung",
                    "default_value" => $data['description']
                ],
                [
                    "name" => "technik",
                    "default_value" => $data['tech_needs']
                ],
                [
                    "name" => "gesamtbetrag",
                    "default_value" => $data['total_price']
                ],
                [
                    "name" => "teilnahmebedingungen",
                    "default_value" => true
                ]
            ]
        ]
    ]
];

$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-Auth-Token: ' . $api_key,
    'Content-Type: application/json'
]);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curl_error = curl_error($ch);
if ($http_code === 200 || $http_code === 201) {
    $responseData = json_decode($response, true);
    $submitter = $responseData[0] ?? [];
    $signing_url = $submitter['url'] ?? null;
    if (!$signing_url && !empty($submitter['slug'])) {
        $signing_url = "URL EINFÜGEN" . $submitter['slug'];
    }
    if ($signing_url) {
        header("Location: " . $signing_url);
        exit;
    } else {
        echo "<h1>Fehler: Konnte den Signatur-Link nicht generieren!</h1>";
        echo "<b>Rohe API-Antwort:</b><br><pre>" . htmlspecialchars($response) . "</pre>";
        exit;
    }

} else {
    echo "<h1>🚨 VERBINDUNG ZU DOCUSEAL FEHLGESCHLAGEN 🚨</h1>";
    echo "<p><b>HTTP-Code:</b> " . htmlspecialchars($http_code) . "</p>";
    echo "<p><b>API-Antwort von DocuSeal:</b> <span style='color:red;'>" . htmlspecialchars($response) . "</span></p>";
    echo "<p><b>Interner cURL-Fehler:</b> " . htmlspecialchars($curl_error) . "</p>";
    exit;
}