<?php

session_start();
require_once(__DIR__ . '/../db/conexion.php');
header('Content-Type: application/json; charset=utf-8');

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

// Recibir el JSON del body
$input = json_decode(file_get_contents('php://input'), true);

$inicio = isset($input['inicio']) ? $input['inicio'] : null;
$fin = isset($input['fin']) ? $input['fin'] : null;
$reclutadores = isset($input['reclutadores']) ? $input['reclutadores'] : [];
$incluirAnteriores = isset($input['incAnt']) ? (bool)$input['incAnt'] : false;

// Construir condición IN para reclutadores
$placeholders = implode(',', array_fill(0, count($reclutadores), '?'));
$condicionReclutadores = "AND b.activado_por IN ($placeholders)";

$condBanco = '';
$condBancoAcum = '';
$params = [];
$tipos = '';

if ($inicio && $fin) {
  if(!$incluirAnteriores) {
    $condBanco = "AND b.fecha_ingreso BETWEEN ? AND ?";
    $condBancoAcum = "AND DATE(a.fecha_registro) >= ?";
    $params = array_merge([$inicio, $fin, $inicio], $reclutadores);
    $tipos = str_repeat('s', 3 + count($reclutadores));
  } else {
    $condBanco = "AND b.fecha_ingreso BETWEEN ? AND ?";
    $params = array_merge([$inicio, $fin], $reclutadores);
    $tipos = str_repeat('s', 2 + count($reclutadores));
  }
} else {
  $params = $reclutadores;
  $tipos = str_repeat('s', count($reclutadores));
}

$sqlBanco = "
SELECT a.id, a.nombre, a.apellido_paterno, a.apellido_materno, DATE(b.fecha_ingreso) AS fecha_ingreso
FROM banco_registros b LEFT JOIN aspirantes a ON a.id = b.aspirante_id
WHERE b.estatus = 'pendiente' 
$condBanco
$condBancoAcum
$condicionReclutadores
";

$stmt = $conn->prepare($sqlBanco);
if (!empty($params)) {
  $stmt->bind_param($tipos, ...$params);
}

$stmt->execute();
$result = $stmt->get_result();

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

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

?>
