<?php
include 'conexion.php';

header('Content-Type: application/json');
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Leer el JSON enviado
$datos = json_decode(file_get_contents("php://input"), true);

if ($datos === null) {
    echo json_encode(['insercionCorrecta' => false, 'error' => 'Error al decodificar JSON']);
    exit;
}

// Verificar que los datos requeridos estén presentes
if (!isset($datos['nombre_concierto'], $datos['zonas'])) {
    echo json_encode(['insercionCorrecta' => false, 'error' => 'Faltan datos requeridos']);
    exit;
}

// Extraer valores
$nombre_concierto = $datos['nombre_concierto'];
$artista = $datos['artista'];
$fecha = $datos['fecha'];
$calle = $datos['calle'];
$colonia = $datos['colonia'];
$numero_direccion = $datos['numero_direccion'];
$codigo_postal = $datos['codigo_postal'];
$estado = $datos['estado'];
$capacidad_total = $datos['capacidad_total'];
$zonas = $datos['zonas'];

$conexionBD->begin_transaction();

try {
    // Insertar el concierto
    $consulta = "INSERT INTO conciertos (nombre_concierto, artista, fecha, calle, colonia, numero_direccion, codigo_postal, estado, capacidad_total) 
                 VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
    $stmt = $conexionBD->prepare($consulta);
    $stmt->bind_param("ssssssssi", $nombre_concierto, $artista, $fecha, $calle, $colonia, $numero_direccion, $codigo_postal, $estado, $capacidad_total);
    $stmt->execute();

    $id_concierto = $conexionBD->insert_id;
    $stmt->close();

    // Insertar zonas y sus asientos
    $consulta_zonas = "INSERT INTO zonas (id_concierto, nombre_zona, capacidad, precio) VALUES (?, ?, ?, ?)";
    $stmt_zonas = $conexionBD->prepare($consulta_zonas);
    
    $consulta_asientos = "INSERT INTO asientos (id_zona, numero_asiento, estado) VALUES (?, ?, 'disponible')";
    $stmt_asientos = $conexionBD->prepare($consulta_asientos);
    
    foreach ($zonas as $zona) {
        $stmt_zonas->bind_param("isid", $id_concierto, $zona['nombre_zona'], $zona['capacidad'], $zona['precio']);
        $stmt_zonas->execute();
        
        $id_zona = $conexionBD->insert_id;
        
        // Insertar asientos
        for ($i = 1; $i <= $zona['capacidad']; $i++) {
            $stmt_asientos->bind_param("ii", $id_zona, $i);
            $stmt_asientos->execute();
        }
    }
    
    $stmt_zonas->close();
    $stmt_asientos->close();
    $conexionBD->commit();
    
    echo json_encode(['insercionCorrecta' => true, 'id_concierto' => $id_concierto]);

} catch (Exception $e) {
    $conexionBD->rollback();
    echo json_encode(['insercionCorrecta' => false, 'error' => $e->getMessage()]);
}

$conexionBD->close();
?>