<?php
session_start();
header('Content-Type: application/json');

require_once(__DIR__ . '/../db/conexion.php');

$response = ['success' => false, 'reclutadores' => []];

// Solo admin puede acceder
if (!isset($_SESSION['rol']) || !in_array($_SESSION['rol'], ['admin', 'adminTi'])) {
    echo json_encode($response);
    exit;
}

// Por compatibilidad, por defecto se mantienen solo reclutadores.
$rolesPermitidos = ['reclutador', 'admin'];
$rolesSolicitadosRaw = isset($_GET['roles']) ? explode(',', $_GET['roles']) : ['reclutador'];
$rolesSolicitados = array_values(array_unique(array_filter(array_map('trim', $rolesSolicitadosRaw))));
$rolesFiltrados = array_values(array_intersect($rolesPermitidos, $rolesSolicitados));

if (empty($rolesFiltrados)) {
    $rolesFiltrados = ['reclutador'];
}

$attuidsExcluidosRaw = isset($_GET['exclude_attuids']) ? explode(',', $_GET['exclude_attuids']) : [];
$attuidsExcluidos = [];
foreach ($attuidsExcluidosRaw as $attuid) {
    $attuidLimpio = strtoupper(trim($attuid));
    if ($attuidLimpio !== '') {
        $attuidsExcluidos[] = $attuidLimpio;
    }
}
$attuidsExcluidos = array_values(array_unique($attuidsExcluidos));

$placeholders = implode(',', array_fill(0, count($rolesFiltrados), '?'));
$condicionExclusionAttuid = '';
if (!empty($attuidsExcluidos)) {
    $placeholdersAttuid = implode(',', array_fill(0, count($attuidsExcluidos), '?'));
    $condicionExclusionAttuid = "  AND UPPER(r.attuid) NOT IN ($placeholdersAttuid)\n";
}

$sql = "
SELECT r.attuid,
       CONCAT(r.nombre, ' ', r.`apellido_paterno`, ' ', r.`apellido_materno`) AS nombre_completo,
       r.rol
FROM reclutadores r
WHERE r.attuid IS NOT NULL
  AND r.rol IN ($placeholders)
  $condicionExclusionAttuid
  AND r.activo = 1;
";

$stmt = $conn->prepare($sql);
if ($stmt) {
    $params = $rolesFiltrados;
    $tipos = str_repeat('s', count($rolesFiltrados));

    if (!empty($attuidsExcluidos)) {
        $params = array_merge($params, $attuidsExcluidos);
        $tipos .= str_repeat('s', count($attuidsExcluidos));
    }

    $stmt->bind_param($tipos, ...$params);

    if ($stmt->execute()) {
        $result = $stmt->get_result();
        while ($row = $result->fetch_assoc()) {
            $response['reclutadores'][] = [
                'attuid' => $row['attuid'],
                'nombre_completo' => $row['nombre_completo'],
                'rol' => $row['rol']
            ];
        }
        $response['success'] = true;
    }
}


echo json_encode($response);
