<?php
/**
 * Script PHP para probar el envío de datos desde línea de comandos
 * Uso: php test_curl.php
 * 
 * Simula el envío de datos desde el equipo industrial
 */

require_once 'config.php';

// URL del endpoint (detectar automáticamente)
$protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http';
$host = $_SERVER['HTTP_HOST'] ?? 'localhost';
$baseUrl = $protocol . '://' . $host . dirname($_SERVER['PHP_SELF']);
$apiUrl = $protocol . '://' . $host . dirname($_SERVER['PHP_SELF']) . '/api/buque.php';

// Si se ejecuta desde CLI, usar localhost
if (php_sapi_name() === 'cli') {
    $apiUrl = 'http://localhost/buque/api/buque.php';
}

echo "===========================================\n";
echo "Prueba de Envío de Datos - Sistema Buque\n";
echo "===========================================\n\n";
echo "Endpoint: $apiUrl\n";
echo "API KEY: " . API_KEY . "\n\n";

// Función para enviar datos
function enviarDatos($url, $temp, $hum, $pres, $apiKey) {
    // Incluir fecha y hora actual de Argentina
    $fechaHora = date('Y-m-d H:i:s');
    $data = "$temp,$hum,$pres,$apiKey,$fechaHora";
    
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: text/plain']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    
    if ($error) {
        return [
            'success' => false,
            'error' => $error,
            'http_code' => $httpCode
        ];
    }
    
    return [
        'success' => true,
        'response' => json_decode($response, true),
        'http_code' => $httpCode,
        'raw' => $response
    ];
}

// Ejemplos de datos de prueba
$ejemplos = [
    ['temp' => 23.5, 'hum' => 60, 'pres' => 1012],
    ['temp' => 24.2, 'hum' => 58, 'pres' => 1013],
    ['temp' => 22.8, 'hum' => 65, 'pres' => 1010],
    ['temp' => 25.1, 'hum' => 55, 'pres' => 1015],
    ['temp' => 23.9, 'hum' => 62, 'pres' => 1011],
];

echo "Enviando " . count($ejemplos) . " mediciones de prueba...\n\n";

foreach ($ejemplos as $index => $ejemplo) {
    $num = $index + 1;
    echo "[$num] Enviando: Temp={$ejemplo['temp']}°C, Hum={$ejemplo['hum']}%, Pres={$ejemplo['pres']}hPa\n";
    
    $resultado = enviarDatos($apiUrl, $ejemplo['temp'], $ejemplo['hum'], $ejemplo['pres'], API_KEY);
    
    if ($resultado['success']) {
        if ($resultado['response']['success']) {
            echo "    ✅ Éxito - ID: {$resultado['response']['data']['id']}\n";
        } else {
            echo "    ❌ Error: {$resultado['response']['message']}\n";
        }
    } else {
        echo "    ❌ Error de conexión: {$resultado['error']}\n";
    }
    
    echo "\n";
    
    // Pausa de 1 segundo entre envíos
    if ($index < count($ejemplos) - 1) {
        sleep(1);
    }
}

echo "===========================================\n";
echo "Prueba completada\n";
echo "===========================================\n";
echo "\nVerifica los datos en: $baseUrl/dashboard.php\n";

