<?php
require_once(__DIR__ . '/../../../backend/db/conexion.php');
$aspirante_id = $c['id'] ?? null;
?>

<div class="p-3">

  <?php
    // Validar si el último movimiento fue pendiente
    $ultimoEstatus = null;
    $stmtUltimo = $conn->prepare("
      SELECT estatus 
      FROM banco_registros 
      WHERE aspirante_id = ?
      ORDER BY fecha_ingreso DESC 
      LIMIT 1
    ");
    $stmtUltimo->bind_param("i", $aspirante_id);
    $stmtUltimo->execute();
    $resUltimo = $stmtUltimo->get_result();
    if ($resUltimo->num_rows > 0) {
      $ultimoEstatus = $resUltimo->fetch_assoc()['estatus'];
    }

    if ($ultimoEstatus === 'pendiente'):
  ?>
    <div class="alert alert-secondary d-flex align-items-center">
      <i class="fas fa-info-circle me-2"></i>
      El aspirante ya se encuentra en el banco con estatus <strong>pendiente</strong>.
    </div>
    <button class="btn btn-secondary w-100 mt-3" disabled>
      <i class="fas fa-archive me-1"></i> Ya en Banco
    </button>
  <?php else: ?>
    <form id="formBanco" class="mb-4">
      <div class="mb-3">
        <label for="comentarioBanco" class="form-label">¿Por qué se envía al banco?</label>
        <textarea class="form-control" id="comentarioBanco" name="comentario" rows="3"
            placeholder="Ejemplo: La vacante fue cerrada por cambios operativos, el aspirante se mantiene en banco para futuras oportunidades."></textarea>
      </div>
      <input type="hidden" id="aspirante_id" value="<?= $aspirante_id ?>">
      <button type="submit" class="btn btn-warning">
        <i class="fas fa-archive me-1"></i> Enviar al Banco
      </button>
    </form>
  <?php endif; ?>

  <hr>

  <h6 class="fw-bold mt-4 mb-3"><i class="fas fa-clock me-2 text-secondary"></i>Historial de movimientos en el banco</h6>

  <?php
    $stmtHistorial = $conn->prepare("
      SELECT tipo, estatus, comentario, fecha_ingreso, fecha_activacion, activado_por
      FROM banco_registros
      WHERE aspirante_id = ?
      ORDER BY fecha_ingreso DESC
    ");
    $stmtHistorial->bind_param("i", $aspirante_id);
    $stmtHistorial->execute();
    $resHistorial = $stmtHistorial->get_result();

    if ($resHistorial->num_rows === 0) {
      echo "<p class='text-muted'>Sin movimientos registrados.</p>";
    } else {
      $movimientos = $resHistorial->fetch_all(MYSQLI_ASSOC);

      echo "<div id='scrollHistorial' style='max-height: 300px; overflow-y: auto;'>";
      echo "<ul class='list-group'>";

      foreach ($movimientos as $mov) {
        $fecha = ($mov['estatus'] === 'activado') ? $mov['fecha_activacion'] : $mov['fecha_ingreso'];
        $badge = $mov['estatus'] === 'pendiente' ? 'warning' : 'success';
        $comentario = !empty($mov['comentario']) ? "<div class='mt-2 text-muted'><em>" . nl2br(htmlspecialchars($mov['comentario'])) . "</em></div>" : "";

        echo "
          <li class='list-group-item'>
            <div class='d-flex justify-content-between'>
              <div>
                <strong>" . ucfirst($mov['tipo']) . "</strong> - 
                <span class='badge bg-$badge text-dark'>" . ucfirst($mov['estatus']) . "</span>
                <br>
                <small class='text-muted'>por {$mov['activado_por']} el " . date('d/m/Y H:i', strtotime($fecha)) . "</small>
              </div>
            </div>
            $comentario
          </li>
        ";
      }

      echo "</ul>";
      echo "</div>";
    }
  ?>
</div>

<script>
document.getElementById('formBanco')?.addEventListener('submit', async (e) => {
  e.preventDefault();

  const comentario = document.getElementById('comentarioBanco')?.value.trim();
  const aspirante_id = document.getElementById('aspirante_id')?.value;

  if (!comentario) {
    alert('Debes escribir un motivo');
    return;
  }

  const formData = new FormData();
  formData.append('aspirante_id', aspirante_id);
  formData.append('comentario', comentario);

  const res = await fetch('../../backend/banco/enviar_a_banco.php', {
    method: 'POST',
    body: formData
  });

  const data = await res.json();
  if (data.success) {
  Swal.fire({
    icon: 'success',
    title: 'Aspirante enviado al banco con éxito',
    showConfirmButton: true,
    confirmButtonText: 'Aceptar'
  }).then(() => {
    location.reload();
  });
} else {
  Swal.fire({
    icon: 'error',
    title: 'Error',
    text: data.message || 'No se pudo enviar al banco'
  });
}
});
</script>
