<?php
// ✅ Configurar sesión antes de session_start()
ini_set('session.gc_maxlifetime', 10800);
ini_set('session.cookie_lifetime', 10800);

session_set_cookie_params([
    'lifetime' => 10800,
    'path' => '/',
    'domain' => '',
    'secure' => false,
    'httponly' => true,
    'samesite' => 'Lax'
]);

session_start();

header('Content-Type: application/json');

// Verificar si la sesión existe
if (!isset($_SESSION['usuario']) || !isset($_SESSION['token'])) {
    http_response_code(401);
    echo json_encode([
        'success' => false,
        'message' => 'Sesión no válida'
    ]);
    exit;
}

// ✅ Actualizar timestamp de última actividad
$_SESSION['LAST_ACTIVITY'] = time();

// Verificar token en base de datos
$host = "localhost";
$user = "ascensof_Admin1";
$password = "3DS0NCH4115H4CK3R+";
$db = "ascensof_BDsimulador";

//$host = "localhost";
//$user = "root";
//$password = "";
//$db = "siapolco_BDsimulador";

try {
    $conn = new mysqli($host, $user, $password, $db);
    
    if ($conn->connect_error) {
        throw new Exception("Error de conexión");
    }
    
    $usuario = $_SESSION['usuario'];
    $tokenSesion = $_SESSION['token'];
    
    $stmt = $conn->prepare("SELECT token FROM Usuarios WHERE usuario = ?");
    $stmt->bind_param("s", $usuario);
    $stmt->execute();
    $result = $stmt->get_result();
    
    if ($result->num_rows === 1) {
        $row = $result->fetch_assoc();
        $tokenBD = $row['token'];
        
        if ($tokenBD === $tokenSesion) {
            // ✅ Sesión válida, responder OK
            echo json_encode([
                'success' => true,
                'message' => 'Sesión mantenida activa',
                'timestamp' => time()
            ]);
        } else {
            // Token no coincide
            http_response_code(401);
            echo json_encode([
                'success' => false,
                'message' => 'Token no válido'
            ]);
        }
    } else {
        http_response_code(401);
        echo json_encode([
            'success' => false,
            'message' => 'Usuario no encontrado'
        ]);
    }
    
    $stmt->close();
    $conn->close();
    
} catch (Exception $e) {
    http_response_code(500);
    echo json_encode([
        'success' => false,
        'message' => 'Error del servidor'
    ]);
}