import { generarEstadioSemiCircular } from './estadio.js';
import { actualizarPDVs, mostrarVacantes } from './filtros.js';

export let todasVacantes = [];
export let pdvPorZona = {};

export async function cargarZonasDesdeBackend() {
  try {
    const res = await fetch('../../backend/vacantes/get_zonas_pdvs.php');
    const json = await res.json();
    if (json.success) {
      generarEstadioSemiCircular(json.data);
      return json.data;
    }
    return [];
  } catch (e) {
    console.error('Error al cargar zonas:', e);
    return [];
  }
}

export async function cargarVacantesDesdeBackend(zonasConPDVsGlobal) {
  try {
    const res = await fetch('../../backend/vacantes/get_panel_vacantes.php');
    const json = await res.json();

    if (!json.success) {
      document.getElementById('contenedorSillas').innerHTML = '<div class="text-center text-danger">Error al cargar vacantes.</div>';
      return;
    }

    const data = json.data;
    todasVacantes = [];

    const zonas = {};
    data.forEach(sector => {
      const zona = sector.sector;
      sector.vacantes.forEach(v => {
        v.zona = zona;
        todasVacantes.push(v);
        if (!zonas[zona]) zonas[zona] = new Set();
        zonas[zona].add(v.pdv);
      });
    });

    const zonaSelect = document.getElementById('filtroZona');
    Object.keys(zonas).sort((a, b) => a.localeCompare(b)).forEach(z => {
      const opt = document.createElement('option');
      opt.value = z;
      opt.textContent = z;
      zonaSelect.appendChild(opt);
    });

    pdvPorZona = Object.fromEntries(
      Object.entries(zonas).map(([zona, pdvsSet]) => [zona, Array.from(pdvsSet)])
    );

    actualizarPDVs();
    mostrarVacantes();
    generarEstadioSemiCircular(zonasConPDVsGlobal);

  } catch (e) {
    console.error('Error al cargar vacantes:', e);
  }
}
