<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}
header('Content-Type: application/json');

if (!isset($_SESSION['attuid']) || ($_SESSION['rol'] ?? '') !== 'subdistribuidor') {
    echo json_encode(['success' => false, 'message' => 'Acceso denegado']);
    exit();
}

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

// Validar ID recibido
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($id <= 0) {
    echo json_encode(['success' => false, 'message' => 'ID inválido']);
    exit();
}

// Obtener datos básicos del aspirante
$stmt = $conn->prepare("
    SELECT a.id, a.nombre, a.apellido_paterno, a.apellido_materno,
       a.puesto, a.correo, a.telefono, a.ubicacion, a.curp, a.nss, a.rfc,
       a.fecha_registro, a.estatus_actual, a.vacante_puesto, a.vacante_pdv,
       a.envio_plantilla   -- <--- AGREGAR ESTE
    FROM aspirantes a
    WHERE a.id = ? AND a.subdistribuidor = 1
");
$stmt->bind_param("i", $id);
$stmt->execute();
$res = $stmt->get_result();
if (!$res->num_rows) {
    echo json_encode(['success' => false, 'message' => 'Aspirante no encontrado']);
    exit();
}
$c = $res->fetch_assoc();

$nombreCompleto = "{$c['nombre']} {$c['apellido_paterno']} {$c['apellido_materno']}";
$estatusActual = $c['estatus_actual'];

// Vacante asignada
$vacanteAsignada = null;
$stmtVac = $conn->prepare("SELECT vacante_codigo, vacante_puesto, vacante_pdv FROM aspirantes WHERE id = ?");
$stmtVac->bind_param("i", $id);
$stmtVac->execute();
$resVac = $stmtVac->get_result();
if ($resVac && $resVac->num_rows > 0) {
    $vacanteAsignada = $resVac->fetch_assoc();
}

// Historial de estatus
$historial = [];
$stmtHist = $conn->prepare("SELECT estatus, fecha, comentario FROM seguimiento_estatus WHERE aspirante_id = ? ORDER BY fecha ASC");
$stmtHist->bind_param("i", $id);
$stmtHist->execute();
$resHist = $stmtHist->get_result();
while ($row = $resHist->fetch_assoc()) {
    $clave = $row['estatus'];
    $historial[$clave] = [
        'fecha' => date('d M Y', strtotime($row['fecha'])),
        'comentario' => $row['comentario'] ?? ''
    ];
}
if (!isset($historial['asignado'])) {
    $historial['asignado'] = [
        'fecha' => date('d M Y', strtotime($c['fecha_registro'])),
        'comentario' => ''
    ];
}

// Experiencia
$stmtExp = $conn->prepare("SELECT empresa, puesto, inicio, fin, actualmente FROM experiencia WHERE aspirante_id = ? ORDER BY inicio DESC");
$stmtExp->bind_param("i", $id);
$stmtExp->execute();
$experiencias = $stmtExp->get_result()->fetch_all(MYSQLI_ASSOC);

// Educación
$stmtEdu = $conn->prepare("SELECT institucion, titulo, inicio, fin, actualmente FROM educacion WHERE aspirante_id = ? ORDER BY inicio DESC");
$stmtEdu->bind_param("i", $id);
$stmtEdu->execute();
$educaciones = $stmtEdu->get_result()->fetch_all(MYSQLI_ASSOC);

// Catálogo de estatus para subdistribuidor
$estatusOrden = [];
$estatusLabels = [];
$stmtEst = $conn->query("SELECT estatus, orden FROM catalogo_estatus_subdistribuidor ORDER BY orden ASC");
while ($row = $stmtEst->fetch_assoc()) {
    $clave = $row['estatus'];
    $estatusOrden[] = $clave;
    // Puedes personalizar etiquetas aquí (ej: Pre alta → Pre Alta)
    $estatusLabels[$clave] = ucfirst(str_replace('_', ' ', $clave));
}
$indexActual = array_search($estatusActual, $estatusOrden);


// Arma el historial como array plano
$historialPlano = [];
foreach ($historial as $estatus => $h) {
    $historialPlano[] = [
        'estatus'    => $estatus,
        'fecha'      => $h['fecha'],
        'comentario' => $h['comentario']
    ];
}

echo json_encode([
    "success"        => true,
    "data"           => $c,
    "nombreCompleto" => $nombreCompleto,
    "estatusActual"  => $estatusActual,
    "estatusOrden"   => $estatusOrden,
    "estatusLabels"  => $estatusLabels,
    "indexActual"    => $indexActual,
    "historial"      => $historialPlano,
     $referencias = []
], JSON_UNESCAPED_UNICODE);

$conn->close(); 

exit;
?>
