<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    exit(0);
}

require_once 'config.php';

try {
    // Récupérer les données JSON (array de tickets)
    $input = json_decode(file_get_contents('php://input'), true);

    if (!$input || !is_array($input)) {
        echo json_encode([
            'success' => false,
            'message' => 'Données de tickets manquantes ou format invalide'
        ]);
        exit;
    }

    $pdo->beginTransaction();

    $savedCount = 0;
    $errors = [];

    foreach ($input as $ticketData) {
        if (!isset($ticketData['numero_ticket']) || !isset($ticketData['date_heure']) ||
            !isset($ticketData['prix']) || !isset($ticketData['code_utilisateur']) || !isset($ticketData['SiteID'])) {
            $errors[] = 'Paramètres manquants pour un ticket';
            continue;
        }

        $numero_ticket = trim($ticketData['numero_ticket']);
        $date_heure = trim($ticketData['date_heure']);
        $prix = floatval($ticketData['prix']);
        $code_utilisateur = trim($ticketData['code_utilisateur']);
        $siteID = trim($ticketData['SiteID']);

        try {
            // Insérer le ticket dans la base de données
            $stmt = $pdo->prepare("
                INSERT INTO Tickets_Parking (numero_ticket, date_heure, prix, code_utilisateur, SiteID)
                VALUES (?, ?, ?, ?, ?)
            ");
            $stmt->execute([$numero_ticket, $date_heure, $prix, $code_utilisateur, $siteID]);
            $savedCount++;
        } catch (Exception $e) {
            $errors[] = "Erreur pour ticket $numero_ticket: " . $e->getMessage();
        }
    }

    if (empty($errors)) {
        $pdo->commit();
        echo json_encode([
            'success' => true,
            'message' => "$savedCount tickets enregistrés avec succès"
        ]);
    } else {
        $pdo->rollBack();
        echo json_encode([
            'success' => false,
            'message' => 'Erreur lors de l\'enregistrement: ' . implode(', ', $errors)
        ]);
    }

} catch (Exception $e) {
    if ($pdo->inTransaction()) {
        $pdo->rollBack();
    }
    error_log("Erreur save_tickets: " . $e->getMessage());
    echo json_encode([
        'success' => false,
        'message' => 'Erreur serveur: ' . $e->getMessage()
    ]);
}
?>
