<?php
require 'conexionbd.php';

$data = json_decode(file_get_contents('php://input'), true);
$artista = $data['artista'] ?? '';
$dia = $data['dia'] ?? '';
$asientos = $data['asientos'] ?? [];

if (empty($artista) || empty($dia) || empty($asientos)) {
    die(json_encode(['error' => 'Faltan parámetros (artista, dia, asientos).']));
}

try {
    // Iniciar una transacción
    $conn->beginTransaction();

    // Registrar la venta y actualizar el estado del asiento
    $stmtVenta = $conn->prepare("INSERT INTO ventas (asiento_id, precio) VALUES (:asiento_id, :precio)");
    $stmtAsiento = $conn->prepare("UPDATE asientos SET estado = 'vendido' WHERE id = :id");

    foreach ($asientos as $asiento) {
        // Obtener el ID y precio del asiento
        $stmt = $conn->prepare("SELECT id, precio FROM asientos WHERE artista = :artista AND dia = :dia AND asiento = :asiento");
        $stmt->execute([':artista' => $artista, ':dia' => $dia, ':asiento' => $asiento]);
        $asientoData = $stmt->fetch(PDO::FETCH_ASSOC);

        if ($asientoData) {
            // Registrar la venta
            $stmtVenta->execute([
                ':asiento_id' => $asientoData['id'],
                ':precio' => $asientoData['precio']
            ]);

            // Marcar el asiento como vendido
            $stmtAsiento->execute([':id' => $asientoData['id']]);
        }
    }

    // Confirmar la transacción
    $conn->commit();
    echo json_encode(['success' => true, 'message' => 'Venta registrada correctamente.']);
} catch (PDOException $e) {
    // Revertir la transacción en caso de error
    $conn->rollBack();
    die(json_encode(['error' => 'Error al registrar la venta: ' . $e->getMessage()]));
}
?>