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

// Verificar autenticación
if (!isset($_SESSION['user_id'])) {
    http_response_code(401);
    echo json_encode(['success' => false, 'error' => 'No autorizado']);
    exit;
}

// Verificar permisos
$rol = strtolower($_SESSION['rol'] ?? '');
if (!in_array($rol, ['administrador', 'convivencia', 'sicologo'])) {
    http_response_code(403);
    echo json_encode(['success' => false, 'error' => 'Sin permisos']);
    exit;
}

try {
    $alumno_id = $_GET['alumno_id'] ?? '';

    if (empty($alumno_id)) {
        throw new Exception('ID de alumno requerido');
    }

    $orden_campo = $_GET['orden_campo'] ?? 'fecha_atencion';
    $orden_direccion = strtoupper($_GET['orden_direccion'] ?? 'DESC');

    $campos_validos = ['fecha_atencion', 'motivo_atencion', 'usuario_nombre', 'fecha_modificacion'];
    if (!in_array($orden_campo, $campos_validos)) {
        $orden_campo = 'fecha_atencion';
    }

    // Obtener atenciones del alumno
    $sql = "SELECT 
                at.*,
                u.usuario as usuario_nombre
            FROM atencion_sicologica at
            LEFT JOIN usuarios u ON at.usuario_id = u.id
            WHERE at.alumno_id = ?
            ORDER BY {$orden_campo} {$orden_direccion}";

    $stmt = $pdo->prepare($sql);
    $stmt->execute([$alumno_id]);
    $atenciones = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // Formatear fechas para la vista
    foreach ($atenciones as &$atencion) {
        $dt = new DateTime($atencion['fecha_atencion']);
        $atencion['fecha_atencion_formato'] = $dt->format('d/m/Y');
        $atencion['hora_atencion_formato'] = $dt->format('H:i');
        $atencion['fecha_atencion_iso'] = $dt->format('Y-m-d\TH:i');

        // Formatear fecha de modificación
        $atencion['fecha_modificacion_formato'] = $atencion['fecha_modificacion'] ? (new DateTime($atencion['fecha_modificacion']))->format('d/m/Y H:i') : '-';
    }

    echo json_encode([
        'success' => true,
        'data' => $atenciones
    ]);
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode(['success' => false, 'error' => $e->getMessage()]);
}
