const formulario = document.getElementById("formulario");
const mensajeDiv = document.getElementById("mensaje");
const buscadorBoton = document.getElementById("buscadorBoton");
const buscadorInput = document.getElementById("buscadorColaborador");
const cerrarSesion = document.getElementById("cerrarSesion");

// Función para cambiar de paso en el formulario
function siguientePaso (paso) {
    paso = Number(paso); // Asegurar que sea número
    const pasos = document.querySelectorAll("[id^='paso']");
    
    // Ocultar todos los pasos
    pasos.forEach(p => p.classList.add("d-none"));

    // Mostrar el paso seleccionado
    document.getElementById(`paso${paso}`).classList.remove("d-none");
}

// Enviar formulario
formulario.addEventListener("submit", async (event) => {
    event.preventDefault();
    
    const capacidadTotal = parseInt(document.getElementById("capacidad_total").value, 10);
    if (isNaN(capacidadTotal) || capacidadTotal <= 0) {
        mensajeDiv.innerHTML = '<div class="alert alert-danger">Error: La capacidad total debe ser un número mayor a 0.</div>';
        return;
    }

    const datosConcierto = {
        nombre_concierto: document.getElementById("nombre_concierto").value.trim(),
        artista: document.getElementById("artista").value.trim(),
        fecha: document.getElementById("fecha").value,
        calle: document.getElementById("calle").value.trim(),
        colonia: document.getElementById("colonia").value.trim(),
        numero_direccion: document.getElementById("numero_direccion").value.trim(),
        codigo_postal: document.getElementById("codigo_postal").value.trim(),
        estado: document.getElementById("estado").value.trim(),
        capacidad_total: capacidadTotal,
        zonas: [
            { nombre_zona: "General", capacidad: parseInt(document.getElementById("capacidad_general").value, 10) || 0, precio: parseFloat(document.getElementById("precio_general").value) || 0 },
            { nombre_zona: "Plata", capacidad: parseInt(document.getElementById("capacidad_plata").value, 10) || 0, precio: parseFloat(document.getElementById("precio_plata").value) || 0 },
            { nombre_zona: "Oro", capacidad: parseInt(document.getElementById("capacidad_oro").value, 10) || 0, precio: parseFloat(document.getElementById("precio_oro").value) || 0 },
            { nombre_zona: "VIP", capacidad: parseInt(document.getElementById("capacidad_vip").value, 10) || 0, precio: parseFloat(document.getElementById("precio_vip").value) || 0 }
        ]
    };

    const sumaCapacidades = datosConcierto.zonas.reduce((total, zona) => total + zona.capacidad, 0);

    if (sumaCapacidades > capacidadTotal) {
        mensajeDiv.innerHTML = '<div class="alert alert-danger">La suma de las capacidades de las zonas no puede superar la capacidad total.</div>';
        return;
    } else if (sumaCapacidades < capacidadTotal){
        mensajeDiv.innerHTML = '<div class="alert alert-danger">La suma de las capacidades de las zonas no puede ser menor a la capacidad total.</div>';
        return;
    }

    try {
        const respuesta = await fetch("controladores/insertar_concierto.php", {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify(datosConcierto)
        });

        if (!respuesta.ok) {
            throw new Error(`HTTP Error: ${respuesta.status}`);
        }

        const data = await respuesta.json();
        
        if (data.insercionCorrecta) {
            formulario.reset();
            siguientePaso(1); 
            mensajeDiv.innerHTML = '<div class="alert alert-success">Concierto registrado correctamente.</div>';
        } else {
            mensajeDiv.innerHTML = `<div class="alert alert-danger">Error: ${data.error || "No se pudo registrar el concierto."}</div>`;
        }
    } catch (error) {
        mensajeDiv.innerHTML = `<div class="alert alert-danger">Error en la solicitud: ${error.message}</div>`;
        console.error("Error:", error);
    }
});

// Cerrar sesión
cerrarSesion.addEventListener("click", () => {
    window.location.href = "logout.php";
});