<?php
require_once 'config.php';
require_once 'auth.php';
checkLogin();

$pdo = getDBConnection();
if (!$pdo) die("Error de conexión");

$buque_id = $_GET['buque_id'] ?? 'BOUCIÑA-01';

// 1. Consultar Base de Datos
$stmt = $pdo->prepare("SELECT last_contact, name FROM ships WHERE ship_id = :id");
$stmt->execute(['id' => $buque_id]);
$ship = $stmt->fetch(PDO::FETCH_ASSOC);

// 2. Consultar Caché (Procesamiento en tiempo real)
$cacheId = md5($buque_id);
$cacheFile = __DIR__ . "/cache/ship_$cacheId.json";
$cacheTime = 0;
if (file_exists($cacheFile)) {
    $cacheData = json_decode(file_get_contents($cacheFile), true);
    if ($cacheData && isset($cacheData['last_contact'])) {
        $cacheTime = strtotime($cacheData['last_contact']);
    }
}

$dbTime = $ship ? strtotime($ship['last_contact']) : 0;
$lastTime = max($dbTime, $cacheTime);

$diff = time() - $lastTime;
$isOnline = ($diff < 600); // 10 minutos de margen

header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<html>
<head>
    <title>Estado de Conexión - <?php echo htmlspecialchars($buque_id); ?></title>
    <style>
        body { font-family: sans-serif; background: #1a1a2e; color: white; text-align: center; padding-top: 50px; }
        .status-card { display: inline-block; padding: 30px; border-radius: 15px; background: #16213e; border: 2px solid; }
        .online { border-color: #0f3460; box-shadow: 0 0 20px #4ecca3; color: #4ecca3; }
        .offline { border-color: #e94560; box-shadow: 0 0 20px #e94560; color: #e94560; }
        .time { color: #888; margin-top: 10px; font-size: 0.9em; }
        h1 { margin: 0; font-size: 2.5em; }
    </style>
</head>
<body>
    <div class="status-card <?php echo $isOnline ? 'online' : 'offline'; ?>">
        <p>Equipo: <strong><?php echo htmlspecialchars($ship['name'] ?? $buque_id); ?></strong></p>
        <h1><?php echo $isOnline ? 'CONECTADO ✅' : 'DESCONECTADO ❌'; ?></h1>
        <p class="time">
            Última señal recibida: <?php echo date('d/m/Y H:i:s', $lastTime); ?><br>
            Hace <?php echo floor($diff / 60); ?> minutos y <?php echo ($diff % 60); ?> segundos.
        </p>
    </div>
    <br><br>
    <button onclick="location.reload()" style="padding: 10px 20px; cursor: pointer;">Actualizar Estado</button>
    <br><br>
    <a href="dashboard.php" style="color: #4ecca3; text-decoration: none;">← Volver al Dashboard</a>
</body>
</html>
