<?php
require_once __DIR__ . '/../config/db_auto.php';
header('Content-Type: application/json');

$alumno_id = $_GET['alumno_id'] ?? '';
if (!$alumno_id) {
    echo json_encode([]);
    exit;
}

$sql = "
        SELECT f.id, f.nombre, f.ap_paterno, f.ap_materno, f.run, 
        TRIM(f.telefono) as telefono, TRIM(f.telefono2) as telefono2,
        COALESCE(af.parentesco_especifico, f.parentesco) as parentesco, 
        GROUP_CONCAT(DISTINCT af.tipo_relacion SEPARATOR ' | ') as roles
        FROM familiares f
        JOIN alumno_familiar af ON af.familiar_id = f.id
        WHERE af.alumno_id = :alumno_id
        GROUP BY f.id
        ORDER BY f.ap_paterno, f.ap_materno, f.nombre
";
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':alumno_id', $alumno_id, PDO::PARAM_INT);
$stmt->execute();
$familiares_raw = $stmt->fetchAll(PDO::FETCH_ASSOC);

$familiares = [];
foreach ($familiares_raw as $f) {
    $ap_paterno = $f['ap_paterno'] ?? '';
    $ap_materno = $f['ap_materno'] ?? '';
    $nombre = $f['nombre'] ?? '';
    $roles_raw = explode(' | ', $f['roles'] ?? '');

    // Formatear nombre completo
    $nombre_formateado = trim($ap_paterno . ' ' . $ap_materno . ', ' . $nombre);

    // Limpiar y traducir roles
    $roles_limpios = [];
    foreach ($roles_raw as $r) {
        $r = trim($r);
        if ($r === 'APODERADO TITULAR') $roles_limpios[] = 'Apoderado Titular';
        elseif ($r === 'APODERADO SUPLENTE') $roles_limpios[] = 'Apoderado Suplente';
        elseif ($r === 'CONTACTO DE EMERGENCIA 1') $roles_limpios[] = 'Emergencia 1';
        elseif ($r === 'CONTACTO DE EMERGENCIA 2') $roles_limpios[] = 'Emergencia 2';
        elseif ($r) $roles_limpios[] = ucfirst(strtolower($r));
    }

    // Si no hay roles específicos, usar parentesco
    if (empty($roles_limpios)) {
        $parentesco = $f['parentesco'] ?? '';
        $roles_limpios[] = $parentesco ? ucfirst(strtolower($parentesco)) : 'Familiar';
    }

    // Formatear teléfonos
    $telefonos = array_filter([$f['telefono'], $f['telefono2']]);
    $tel_str = !empty($telefonos) ? ' [Tel: ' . implode(' / ', $telefonos) . ']' : ' [Sin Teléfono]';

    $familiares[] = [
        'id' => $f['id'],
        'nombre' => $nombre_formateado,
        'rol' => implode(', ', array_unique($roles_limpios)),
        'telefonos' => implode(' / ', $telefonos) ?: 'No registrado',
        'display_text' => $nombre_formateado . ' (' . implode(', ', array_unique($roles_limpios)) . ')' . $tel_str,
        'v' => '1.5' // Marcador de versión para depuración
    ];
}

echo json_encode([
    'debug_alumno_id' => $alumno_id,
    'debug_cantidad_familiares' => count($familiares),
    'familiares' => $familiares
], JSON_UNESCAPED_UNICODE | JSON_INVALID_UTF8_SUBSTITUTE);
