<?php
session_start();
ob_clean(); // 🔧 limpia cualquier salida accidental
require_once(__DIR__ . '/../db/conexion.php');
header('Content-Type: application/json');

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

$input = json_decode(file_get_contents('php://input'), true);
$aspirante_id = $input['aspirante_id'] ?? null;
$usuario = $_SESSION['attuid'] ?? 'sistema';

if (!$aspirante_id) {
  echo json_encode(['success' => false, 'message' => 'ID no recibido']);
  exit;
}

// Obtener reclutador activo con menor carga (solo rol 'reclutador')
$sqlReclutador = "
  SELECT attuid
  FROM reclutadores
  WHERE activo = 1 AND rol = 'reclutador'
  ORDER BY (
    SELECT COUNT(*) FROM aspirantes WHERE attuid = reclutadores.attuid
  ) ASC
  LIMIT 1
";
$resReclutador = $conn->query($sqlReclutador);
if ($resReclutador->num_rows === 0) {
  echo json_encode(['success' => false, 'message' => 'No hay reclutadores disponibles']);
  exit;
}
$attuid_reclutador = $resReclutador->fetch_assoc()['attuid'];

// Asignar nuevo reclutador
$sqlUpdate = "UPDATE aspirantes SET attuid = ? WHERE id = ?";
$stmtUpdate = $conn->prepare($sqlUpdate);
$stmtUpdate->bind_param("si", $attuid_reclutador, $aspirante_id);
$stmtUpdate->execute();

// Eliminar registro pendiente del banco
$sqlEliminarBanco = "DELETE FROM banco_registros WHERE aspirante_id = ? AND estatus = 'pendiente'";
$stmtEliminar = $conn->prepare($sqlEliminarBanco);
$stmtEliminar->bind_param("i", $aspirante_id);
$stmtEliminar->execute();

// Insertar nuevo movimiento "activado"
$sqlInsert = "
  INSERT INTO banco_registros (aspirante_id, tipo, estatus, fecha_activacion, activado_por)
  VALUES (
    ?, 
    (SELECT CASE WHEN estatus_actual = 'referencias' THEN 'aspirante' ELSE 'candidato' END FROM aspirantes WHERE id = ?),
    'activado',
    NOW(),
    ?
  )
";
$stmtInsert = $conn->prepare($sqlInsert);
$stmtInsert->bind_param("iis", $aspirante_id, $aspirante_id, $usuario);
$stmtInsert->execute();

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