<?php
// sales/success.php - Thank you page showing license key and setup instructions
require_once __DIR__ . '/config.php';

$session_id = $_GET['session_id'] ?? '';
$license_key = '';
$club_name = '';
$email = '';
$type = '';
$max_members = 0;
$addon_name = '';
$error = '';

if (!empty($session_id)) {
    // Fetch checkout session from Stripe API using cURL
    $ch = curl_init('https://api.stripe.com/v1/checkout/sessions/' . urlencode($session_id));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_USERPWD, STRIPE_SECRET_KEY . ':');
    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($http_code === 200) {
        $session = json_decode($response, true);
        $meta = $session['metadata'] ?? [];
        
        $club_name = $meta['club_name'] ?? 'Musterverein';
        $email = $session['customer_details']['email'] ?? ($meta['email'] ?? '');
        $type = $meta['type'] ?? '';
        $max_members = intval($meta['max_members'] ?? 50);
        $addon_name = $meta['addon_name'] ?? '';

        if ($session['payment_status'] === 'paid' || $session['status'] === 'complete') {
            // Check if license is already in our DB (usually created by webhook)
            $stmt = $sales_pdo->prepare("SELECT license_key FROM licenses WHERE email = :email AND club_name = :club AND status = 'active' ORDER BY id DESC LIMIT 1");
            $stmt->execute([':email' => $email, ':club' => $club_name]);
            $license_key = $stmt->fetchColumn();

            // Fallback: If webhook is delayed, generate and insert license key on-the-fly!
            if (!$license_key) {
                try {
                    $sales_pdo->beginTransaction();
                    
                    if ($type === 'core_license') {
                        $license_key = 'TMP-CORE-' . strtoupper(bin2hex(random_bytes(6)));
                        $stmt = $sales_pdo->prepare("INSERT INTO licenses (license_key, club_name, email, max_members, modules) VALUES (:key, :club, :email, :max, '[]')");
                        $stmt->execute([
                            ':key' => $license_key,
                            ':club' => $club_name,
                            ':email' => $email,
                            ':max' => $max_members
                        ]);
                    } elseif ($type === 'addon_license') {
                        $prefix = ($addon_name === 'forum') ? 'TMP-FORUM-' : 'TMP-PLAYRIGHT-';
                        $license_key = $prefix . strtoupper(bin2hex(random_bytes(6)));
                        $stmt = $sales_pdo->prepare("INSERT INTO licenses (license_key, club_name, email, max_members, modules) VALUES (:key, :club, :email, 999999, :modules)");
                        $stmt->execute([
                            ':key' => $license_key,
                            ':club' => $club_name,
                            ':email' => $email,
                            ':modules' => json_encode([$addon_name])
                        ]);
                    }
                    
                    $sales_pdo->commit();
                } catch (Exception $e) {
                    $sales_pdo->rollBack();
                    $error = 'Fehler beim Erstellen der Lizenz: ' . $e->getMessage();
                }
            }
        } else {
            $error = 'Die Zahlung wurde noch nicht bestätigt. Bitte warten Sie einen Moment.';
        }
    } else {
        $error = 'Stripe-Sitzung konnte nicht validiert werden.';
    }
} else {
    $error = 'Ungültiger Aufruf der Erfolgsseite.';
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Zahlung erfolgreich! - Team Mania PRO</title>
    <style>
        :root {
            --bg: #0f172a;
            --card: #1e293b;
            --primary: #0284c7;
            --primary-hover: #0369a1;
            --text: #f8fafc;
            --text-muted: #94a3b8;
            --border: #334155;
            --success: #10b981;
        }
        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
            font-family: 'Segoe UI', system-ui, sans-serif;
        }
        body {
            background-color: var(--bg);
            color: var(--text);
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            padding: 20px;
        }
        .container {
            background-color: var(--card);
            border: 1px solid var(--border);
            border-radius: 12px;
            width: 100%;
            max-width: 600px;
            padding: 40px;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.3);
            text-align: center;
        }
        .icon {
            font-size: 48px;
            color: var(--success);
            margin-bottom: 20px;
        }
        h1 {
            font-size: 26px;
            font-weight: 800;
            margin-bottom: 10px;
        }
        p {
            color: var(--text-muted);
            font-size: 14px;
            margin-bottom: 25px;
            line-height: 1.5;
        }
        .license-box {
            background-color: #0f172a;
            border: 2px dashed var(--primary);
            padding: 20px;
            border-radius: 8px;
            margin-bottom: 30px;
        }
        .license-key {
            font-family: monospace;
            font-size: 24px;
            font-weight: bold;
            color: #fff;
            letter-spacing: 1px;
            word-break: break-all;
        }
        .btn {
            display: inline-block;
            padding: 12px 24px;
            background-color: var(--primary);
            color: #fff;
            text-decoration: none;
            border-radius: 6px;
            font-size: 14px;
            font-weight: 600;
            transition: background-color 0.2s;
        }
        .btn:hover {
            background-color: var(--primary-hover);
        }
        .setup-steps {
            text-align: left;
            background-color: #0f172a;
            border: 1px solid var(--border);
            padding: 20px;
            border-radius: 8px;
            margin-top: 30px;
        }
        .setup-steps h3 {
            font-size: 14px;
            font-weight: bold;
            margin-bottom: 12px;
            color: var(--primary);
        }
        .setup-steps ol {
            margin-left: 20px;
            font-size: 13px;
            color: var(--text-muted);
            line-height: 1.6;
        }
        .alert {
            background-color: rgba(239, 68, 68, 0.1);
            border: 1px solid #ef4444;
            color: #fca5a5;
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 20px;
            font-size: 14px;
        }
    </style>
</head>
<body>

<div class="container">
    <?php if (!empty($error)): ?>
        <div class="icon" style="color: #ef4444;">⚠️</div>
        <h1>Zahlungs-Verifizierung</h1>
        <div class="alert"><?= htmlspecialchars($error) ?></div>
        <p>Bitte wenden Sie sich an support@team-mania.de, falls das Problem bestehen bleibt.</p>
    <?php else: ?>
        <div class="icon">✓</div>
        <h1>Vielen Dank für Ihre Bestellung!</h1>
        
        <?php if ($type === 'core_license'): ?>
            <p>Die Zahlung für <strong><?= htmlspecialchars($club_name) ?></strong> wurde erfolgreich bestätigt. Ihr Grundabo für bis zu <?= $max_members ?> Mitglieder ist aktiv.</p>
        <?php else: ?>
            <p>Die Zahlung für das Zusatzmodul <strong>'<?= htmlspecialchars($addon_name) ?>'</strong> für <strong><?= htmlspecialchars($club_name) ?></strong> wurde erfolgreich bestätigt.</p>
        <?php endif; ?>

        <div class="license-box">
            <span style="font-size: 11px; color: var(--text-muted); display: block; margin-bottom: 8px; text-transform: uppercase; font-weight: 600;">Ihr Lizenzschlüssel</span>
            <div class="license-key" id="lic-key"><?= htmlspecialchars($license_key) ?></div>
        </div>

        <div class="setup-steps">
            <h3>So geht es weiter:</h3>
            <ol>
                <?php if ($type === 'core_license'): ?>
                    <li>Laden Sie die Software-Dateien auf Ihren Webspace hoch.</li>
                    <li>Rufen Sie die Datei <code>install.php</code> in Ihrem Browser auf.</li>
                    <li>Geben Sie während der Installation diesen Lizenzschlüssel ein, um die Registrierung abzuschließen.</li>
                <?php else: ?>
                    <li>Loggen Sie sich in Ihr Team Mania PRO Admin-Backend ein.</li>
                    <li>Navigieren Sie zum Bereich <strong>Admin &rarr; Lizenzen</strong>.</li>
                    <li>Tragen Sie diesen Zusatzschlüssel in das entsprechende Feld für <strong><?= htmlspecialchars(ucfirst($addon_name)) ?></strong> ein und speichern Sie.</li>
                <?php endif; ?>
            </ol>
        </div>
    <?php endif; ?>
</div>

</body>
</html>
