const filas = 10;
const columnas = 12;
let diaSeleccionado = 23;
const asientosVendidos = { 22: new Set(), 23: new Set(), 24: new Set() };
let asientosSeleccionados = new Set();


function cargarAsientos() {
    const artista = "The Driver Era"; 
    const url = `control/consultar_asientos.php?artista=${encodeURIComponent(artista)}&dia=${diaSeleccionado}`;

    fetch(url)
        .then(response => response.json())
        .then(data => {
            if (data.error) {
                console.error("Error al cargar los asientos:", data.error);
                return;
            }

            asientosVendidos[diaSeleccionado].clear();

            data.asientos.forEach(asiento => {
                if (asiento.estado === 'vendido') {
                    asientosVendidos[diaSeleccionado].add(asiento.asiento);
                }
            });

            renderizarAsientos();
        })
        .catch(error => console.error('Error al cargar los asientos:', error));
}

function seleccionarDia(dia) {
    diaSeleccionado = dia;
    asientosSeleccionados.clear();
    document.querySelectorAll('.dias button').forEach(btn => btn.classList.remove('selected'));
    event.target.classList.add('selected');
    cargarAsientos();
}


function toggleAsiento(asiento) {
    if (asientosVendidos[diaSeleccionado].has(asiento)) return;
    if (asientosSeleccionados.has(asiento)) {
        asientosSeleccionados.delete(asiento);
    } else {
        asientosSeleccionados.add(asiento);
    }
    renderizarAsientos();
}

function venderAsientos() {
    if (asientosSeleccionados.size === 0) {
        alert("Selecciona al menos un asiento para vender.");
        return;
    }

    const artista = "The Driver Era"; // Cambia esto según el artista
    const precioPorAsiento = 100; // Precio en dólares
    const precioTotal = asientosSeleccionados.size * precioPorAsiento;
    const fechaHora = new Date().toLocaleString();

    // Llenar los datos del modal
    document.getElementById('modalArtista').textContent = artista;
    document.getElementById('modalDia').textContent = diaSeleccionado;
    document.getElementById('modalAsientos').textContent = Array.from(asientosSeleccionados).join(', ');
    document.getElementById('modalPrecioTotal').textContent = `$${precioTotal}`;
    document.getElementById('modalFechaHora').textContent = fechaHora;

    // Mostrar el modal
    document.getElementById('comprobanteModal').style.display = 'block';
}

function confirmarVenta() {
    const artista = "The Driver Era"; // Cambia esto según el artista
    const url = 'control/vender_asientos.php';
    const data = {
        artista: artista,
        dia: diaSeleccionado,
        asientos: Array.from(asientosSeleccionados)
    };

    fetch(url, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(data)
    })
    .then(response => response.json())
    .then(result => {
        if (result.error) {
            console.error("Error al vender los asientos:", result.error);
            alert("Error al vender los asientos: " + result.error);
        } else {
            console.log("Venta realizada:", result.message);
            alert(result.message);

            // Marcar los asientos como vendidos en la interfaz
            asientosSeleccionados.forEach(asiento => {
                asientosVendidos[diaSeleccionado].add(asiento);
            });
            asientosSeleccionados.clear();
            renderizarAsientos();
        }
    })
    .catch(error => console.error('Error al vender los asientos:', error));

    // Cerrar el modal
    document.getElementById('comprobanteModal').style.display = 'none';
}

function rechazarVenta() {
    // Deseleccionar los asientos
    asientosSeleccionados.clear();
    renderizarAsientos();

    // Mostrar mensaje de compra cancelada
    alert("Compra cancelada");

    // Cerrar el modal
    document.getElementById('comprobanteModal').style.display = 'none';
}

// Función para renderizar los asientos
function renderizarAsientos() {
    const contenedor = document.getElementById('asientos');
    contenedor.innerHTML = '';
    for (let i = 0; i < filas * columnas; i++) {
        const asiento = `${Math.floor(i / columnas) + 1}${String.fromCharCode(65 + (i % columnas))}`;
        const boton = document.createElement('button');
        boton.className = 'asiento';
        if (asientosVendidos[diaSeleccionado].has(asiento)) {
            boton.classList.add('vendido');
        } else if (asientosSeleccionados.has(asiento)) {
            boton.style.backgroundColor = 'orange';
        }
        boton.textContent = asiento;
        boton.onclick = () => toggleAsiento(asiento);
        contenedor.appendChild(boton);
    }
}

// Cargar los asientos al iniciar la página
cargarAsientos();

// Manejar el cierre del modal
const modal = document.getElementById('comprobanteModal');
const span = document.getElementsByClassName('close')[0];

span.onclick = () => modal.style.display = 'none';
window.onclick = (event) => {
    if (event.target === modal) {
        modal.style.display = 'none';
    }
};