<?php
session_start();
require_once(__DIR__ . '/../db/conexion.php');
header('Content-Type: application/json');

if (!isset($_SESSION['rol']) || !in_array($_SESSION['rol'], ['admin', 'adminTi', 'coordinador'])) {
  echo json_encode(['success' => false, 'message' => 'Acceso denegado']);
  exit;
}

// Obtener el orden_step de 'referencias'
$sqlRef = "SELECT orden_step FROM catalogo_estatus WHERE clave = 'referencias'";
$resRef = $conn->query($sqlRef);

if ($resRef->num_rows === 0) {
  echo json_encode(['success' => false, 'message' => 'No se encontró el estatus de referencias']);
  exit;
}

$limiteOrden = (int)$resRef->fetch_assoc()['orden_step'];

// Consulta: aspirantes en banco con estatus_actual con orden_step < referencias
$sql = "
  SELECT 
    a.id,
    a.nombre,
    a.apellido_paterno,
    a.apellido_materno,
    a.estatus_actual,
    b.fecha_ingreso
  FROM banco_registros b
  INNER JOIN aspirantes a ON b.aspirante_id = a.id
  INNER JOIN catalogo_estatus ce ON a.estatus_actual = ce.clave
  WHERE b.estatus = 'pendiente'
    AND ce.orden_step < ?
  ORDER BY b.fecha_ingreso DESC
";

$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $limiteOrden);
$stmt->execute();
$result = $stmt->get_result();

$data = [];
while ($row = $result->fetch_assoc()) {
  $data[] = [
    'id' => $row['id'],
    'nombre' => strtoupper($row['nombre'] . ' ' . $row['apellido_paterno'] . ' ' . $row['apellido_materno']),
    'estatus' => strtoupper($row['estatus_actual']),
    'fecha' => date('d/m/Y H:i', strtotime($row['fecha_ingreso']))
  ];
}

echo json_encode(['success' => true, 'data' => $data]);
