// Cargar banco de aspirantes
function cargarBancoAspirantes() {
  fetch('../../backend/banco/get_banco_aspirantes.php')
    .then(response => response.json())
    .then(data => renderBanco(data, 'tablaAspirantesBanco'))
    .catch(error => {
      console.error(error);
      alert('Error al cargar el banco de aspirantes');
    });
}

// Cargar banco de candidatos
function cargarBancoCandidatos() {
  fetch('../../backend/banco/get_banco_candidatos.php')
    .then(response => response.json())
    .then(data => renderBanco(data, 'tablaCandidatosBanco'))
    .catch(error => {
      console.error(error);
      alert('Error al cargar el banco de candidatos');
    });
}

// 🔁 Renderizar tabla de banco (aspirantes o candidatos)
function renderBanco(data, tablaId) {
  const tbody = document.getElementById(tablaId);
  tbody.innerHTML = '';

  if (!data.success) {
    const tr = document.createElement('tr');
    tr.innerHTML = `<td colspan="4" class="text-danger text-center">No se pudo obtener la información.</td>`;
    tbody.appendChild(tr);
    return;
  }

  if (data.data.length === 0) {
    const tr = document.createElement('tr');
    tr.innerHTML = `<td colspan="4" class="text-muted text-center">No hay registros en el banco.</td>`;
    tbody.appendChild(tr);
    return;
  }

  data.data.forEach(item => {
    const tr = document.createElement('tr');
    tr.innerHTML = `
      <td>${item.nombre}</td>
      <td><span class="badge bg-secondary">${item.estatus}</span></td>
      <td>${item.fecha}</td>
      <td>
        <button class="btn btn-sm btn-success" onclick="activarAspirante(${item.id})">
          <i class="fas fa-user-check me-1"></i> Activar
        </button>
      </td>
    `;
    tbody.appendChild(tr);
  });
}

//  Activar aspirante o candidato desde el banco con SweetAlert2
async function activarAspirante(id) {
  const confirmacion = await Swal.fire({
    title: '¿Asignar aspirante?',
    text: 'Será asignado automáticamente a un reclutador disponible.',
    icon: 'question',
    showCancelButton: true,
    confirmButtonText: 'Sí, asignar',
    cancelButtonText: 'Cancelar'
  });

  if (!confirmacion.isConfirmed) return;

  try {
    const res = await fetch('../../backend/banco/activar_aspirante.php', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ aspirante_id: id })
    });

    const texto = await res.text();

    let data;
    try {
      data = JSON.parse(texto);
    } catch (e) {
      console.error('Respuesta no es JSON:', texto);
      Swal.fire({
        icon: 'error',
        title: 'Error inesperado',
        text: 'El servidor devolvió una respuesta no válida.'
      });
      return;
    }

    if (data.success) {
      Swal.fire({
        icon: 'success',
        title: 'Aspirante asignado con éxito',
        showConfirmButton: false,
        timer: 2000
      });

      // Refrescar tabla
      if (document.getElementById('tablaAspirantesBanco')) {
        cargarBancoAspirantes();
      } else {
        cargarBancoCandidatos();
      }
    } else {
      Swal.fire({
        icon: 'error',
        title: 'Error',
        text: data.message || 'No se pudo activar el aspirante.'
      });
    }
  } catch (err) {
    console.error('Error de red:', err);
    Swal.fire({
      icon: 'error',
      title: 'Error de red',
      text: 'No se pudo conectar al servidor.'
    });
  }
}
