<?php
include 'conexion.php';

header('Content-Type: application/json');

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    // Verificar si es solicitud de concierto
    if (isset($_GET['id_concierto'])) {
        $idConcierto = intval($_GET['id_concierto']);

        // Obtener la información del concierto
        $consultaConcierto = "SELECT * FROM conciertos WHERE id_concierto = ?";
        $stmt = $conexionBD->prepare($consultaConcierto);
        $stmt->bind_param("i", $idConcierto);
        $stmt->execute();
        $resultadoConcierto = $stmt->get_result();
        $concierto = $resultadoConcierto->fetch_assoc();

        if (!$concierto) {
            echo json_encode(["error" => "Concierto no encontrado"]);
            exit;
        }

        // Obtener zonas del concierto
        $consultaZonas = "SELECT * FROM zonas WHERE id_concierto = ?";
        $stmtZonas = $conexionBD->prepare($consultaZonas);
        $stmtZonas->bind_param("i", $idConcierto);
        $stmtZonas->execute();
        $resultadoZonas = $stmtZonas->get_result();

        $zonas = [];
        while ($zona = $resultadoZonas->fetch_assoc()) {
            // Contar asientos disponibles y ocupados
            $consultaAsientos = "SELECT estado FROM asientos WHERE id_zona = ?";
            $stmtAsientos = $conexionBD->prepare($consultaAsientos);
            $stmtAsientos->bind_param("i", $zona['id_zona']);
            $stmtAsientos->execute();
            $resultadoAsientos = $stmtAsientos->get_result();

            $asientos_disponibles = 0;
            $asientos_ocupados = 0;

            while ($asiento = $resultadoAsientos->fetch_assoc()) {
                if ($asiento['estado'] === 'disponible') {
                    $asientos_disponibles++;
                } else {
                    $asientos_ocupados++;
                }
            }

            // Agregar datos de asientos a la zona
            $zona['asientos_disponibles'] = $asientos_disponibles;
            $zona['asientos_ocupados'] = $asientos_ocupados;
            
            $zonas[] = $zona;
        }

        // Agregar las zonas al concierto
        $concierto['zonas'] = $zonas;

        echo json_encode($concierto);
        exit;
    }

    // Verificar si es solicitud de zona
    if (isset($_GET['id_zona'])) {
        $idZona = intval($_GET['id_zona']);

        // Obtener la información de la zona específica
        $consultaZona = "SELECT * FROM zonas WHERE id_zona = ?";
        $stmtZona = $conexionBD->prepare($consultaZona);
        $stmtZona->bind_param("i", $idZona);
        $stmtZona->execute();
        $resultadoZona = $stmtZona->get_result();
        $zona = $resultadoZona->fetch_assoc();

        if (!$zona) {
            echo json_encode(["error" => "Zona no encontrada"]);
            exit;
        }

        // Obtener asientos de la zona
        $consultaAsientos = "SELECT estado FROM asientos WHERE id_zona = ?";
        $stmtAsientos = $conexionBD->prepare($consultaAsientos);
        $stmtAsientos->bind_param("i", $idZona);
        $stmtAsientos->execute();
        $resultadoAsientos = $stmtAsientos->get_result();

        $asientos_disponibles = 0;
        $asientos_ocupados = 0;

        while ($asiento = $resultadoAsientos->fetch_assoc()) {
            if ($asiento['estado'] === 'disponible') {
                $asientos_disponibles++;
            } else {
                $asientos_ocupados++;
            }
        }

        // Agregar información de asientos a la zona
        $zona['asientos_disponibles'] = $asientos_disponibles;
        $zona['asientos_ocupados'] = $asientos_ocupados;

        echo json_encode($zona);
        exit;
    }

    echo json_encode(["error" => "Solicitud incorrecta"]);
    exit;
}
?>