<?php
header('Content-Type: application/json; charset=utf-8');
mb_internal_encoding('UTF-8');

// Verificar que es una sesión de demo
session_start();
if (!isset($_SESSION['demo_user']) || $_SESSION['demo_user'] !== true) {
    echo json_encode(['success' => false, 'message' => 'No autorizado']);
    exit;
}

// Generar datos simulados para la demostración
$buque_id = isset($_GET['buque_id']) ? $_GET['buque_id'] : 'DEMO-01';

// Generar última medición simulada con valores realistas
$ultima = [
    'buque_id' => $buque_id,
    'fecha' => date('Y-m-d H:i:s'),
    'ip' => '192.168.1.100',
];

// Generar temperaturas simuladas para 14 sensores
// Solo 1 sensor tendrá temperatura alta (alerta), los demás estarán normales
$sensorConAlerta = 5; // Sensor 5 tendrá temperatura alta
$tempAlta = 28.5; // Temperatura que supera el umbral (típicamente 25-27°C)

// Temperaturas base para la última medición (con variación natural)
$temperaturasBaseUltima = [
    1 => 19.5, 2 => 19.8, 3 => 20.0, 4 => 20.2,
    5 => 27.0, // Sensor con alerta
    6 => 20.5, 7 => 20.7, 8 => 21.0, 9 => 21.2,
    10 => 21.5, 11 => 21.7, 12 => 22.0, 13 => 22.2, 14 => 22.5
];

// Mismo comportamiento que el historial para consistencia
$comportamientoSensoresUltima = [
    1 => ['freq' => 50, 'amp' => 0.3, 'offset' => 0],
    2 => ['freq' => 30, 'amp' => 0.5, 'offset' => 2],
    3 => ['freq' => 25, 'amp' => 0.4, 'offset' => 4],
    4 => ['freq' => 40, 'amp' => 0.6, 'offset' => 1],
    5 => ['freq' => 35, 'amp' => 1.0, 'offset' => 3],
    6 => ['freq' => 20, 'amp' => 0.4, 'offset' => 5],
    7 => ['freq' => 45, 'amp' => 0.5, 'offset' => 2],
    8 => ['freq' => 15, 'amp' => 0.7, 'offset' => 6],
    9 => ['freq' => 55, 'amp' => 0.3, 'offset' => 1],
    10 => ['freq' => 28, 'amp' => 0.6, 'offset' => 3],
    11 => ['freq' => 22, 'amp' => 0.5, 'offset' => 4],
    12 => ['freq' => 38, 'amp' => 0.4, 'offset' => 2],
    13 => ['freq' => 18, 'amp' => 0.6, 'offset' => 5],
    14 => ['freq' => 32, 'amp' => 0.5, 'offset' => 1]
];

$currentTime = time();
for ($i = 1; $i <= 14; $i++) {
    $baseTemp = $temperaturasBaseUltima[$i];
    $comportamiento = $comportamientoSensoresUltima[$i];
    
    if ($i == $sensorConAlerta) {
        // Sensor con alerta
        $variation = sin($currentTime / $comportamiento['freq'] + $comportamiento['offset']) * $comportamiento['amp'];
        $temp = $baseTemp + $variation;
        $temp = max(26.0, min(28.5, $temp));
    } else {
        // Sensores normales
        $variation = sin($currentTime / $comportamiento['freq'] + $comportamiento['offset']) * $comportamiento['amp'];
        $temp = $baseTemp + $variation;
        $temp = max(18.0, min(23.0, $temp));
    }
    
    $ultima["temp$i"] = number_format($temp, 2, '.', '');
}

// Generar historial de últimas 24 horas (simulado) - Comportamiento natural y diferenciado
$historial = [];
$now = time();
$sensorConAlerta = 5; // Mismo sensor con alerta en el historial

// Temperaturas base para cada sensor
$temperaturasBase = [
    1 => 19.5, 2 => 19.8, 3 => 20.0, 4 => 20.2,
    5 => 27.0, // Sensor con alerta - temperatura alta
    6 => 20.5, 7 => 20.7, 8 => 21.0, 9 => 21.2,
    10 => 21.5, 11 => 21.7, 12 => 22.0, 13 => 22.2, 14 => 22.5
];

// Configuración de comportamiento para cada sensor (frecuencia y amplitud diferentes)
$comportamientoSensores = [
    1 => ['freq' => 50, 'amp' => 0.3, 'offset' => 0],      // Muy estable, variación mínima
    2 => ['freq' => 30, 'amp' => 0.5, 'offset' => 2],      // Estable, variación pequeña
    3 => ['freq' => 25, 'amp' => 0.4, 'offset' => 4],      // Estable
    4 => ['freq' => 40, 'amp' => 0.6, 'offset' => 1],      // Estable
    5 => ['freq' => 35, 'amp' => 1.0, 'offset' => 3],      // Alerta: variación suave pero visible
    6 => ['freq' => 20, 'amp' => 0.4, 'offset' => 5],      // Cambios lentos
    7 => ['freq' => 45, 'amp' => 0.5, 'offset' => 2],      // Estable
    8 => ['freq' => 15, 'amp' => 0.7, 'offset' => 6],      // Cambios muy lentos
    9 => ['freq' => 55, 'amp' => 0.3, 'offset' => 1],      // Muy estable
    10 => ['freq' => 28, 'amp' => 0.6, 'offset' => 3],     // Estable
    11 => ['freq' => 22, 'amp' => 0.5, 'offset' => 4],     // Cambios lentos
    12 => ['freq' => 38, 'amp' => 0.4, 'offset' => 2],     // Estable
    13 => ['freq' => 18, 'amp' => 0.6, 'offset' => 5],    // Cambios muy lentos
    14 => ['freq' => 32, 'amp' => 0.5, 'offset' => 1]      // Estable
];

for ($i = 0; $i < 100; $i++) {
    $timestamp = $now - ($i * 900); // Cada 15 minutos
    $fecha = date('Y-m-d H:i:s', $timestamp);
    
    $historialEntry = ['fecha' => $fecha];
    for ($j = 1; $j <= 14; $j++) {
        $baseTemp = $temperaturasBase[$j];
        $comportamiento = $comportamientoSensores[$j];
        
        if ($j == $sensorConAlerta) {
            // Sensor con alerta: temperatura alta con variación suave pero visible
            $variation = sin($timestamp / $comportamiento['freq'] + $comportamiento['offset']) * $comportamiento['amp'];
            $temp = $baseTemp + $variation;
            $temp = max(26.0, min(28.5, $temp)); // Mantener en rango de alerta
        } else {
            // Sensores normales: variación natural pero suave
            // Cada sensor tiene diferente frecuencia y amplitud para comportamiento único
            $variation = sin($timestamp / $comportamiento['freq'] + $comportamiento['offset']) * $comportamiento['amp'];
            $temp = $baseTemp + $variation;
            // Mantener en rango normal (18-23°C)
            $temp = max(18.0, min(23.0, $temp));
        }
        
        $historialEntry["temp$j"] = number_format($temp, 2, '.', '');
    }
    $historial[] = $historialEntry;
}
$historial = array_reverse($historial);

// Respuesta simulada
echo json_encode([
    'success' => true,
    'data' => [
        'ultima' => $ultima,
        'historial' => $historial,
        'lista_buques' => ['DEMO-01']
    ]
], JSON_UNESCAPED_UNICODE);
exit;

