<?php
// Script de Adaptación Total de Base de Datos
// Antigravity AI - Buque Telemetria

$host = 'localhost';
$user = 'root';
$pass = '';

try {
    // 1. Conexión inicial sin base de datos
    $pdo = new PDO("mysql:host=$host", $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 2. Crear base de datos si no existe
    $dbName = 'buque_telemetria';
    $pdo->exec("CREATE DATABASE IF NOT EXISTS `$dbName` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci");
    $pdo->exec("USE `$dbName`");

    // 3. Crear tabla mediciones si no existe con estructura básica
    $pdo->exec("CREATE TABLE IF NOT EXISTS mediciones (
        id INT AUTO_INCREMENT PRIMARY KEY,
        fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    ) ENGINE=InnoDB");

    // 4. Asegurar columnas necesarias (temp1 a temp10 y buque_id)
    $columns = [
        'buque_id' => "VARCHAR(50) AFTER id",
        'temp1' => "DECIMAL(5,2)",
        'temp2' => "DECIMAL(5,2)",
        'temp3' => "DECIMAL(5,2)",
        'temp4' => "DECIMAL(5,2)",
        'temp5' => "DECIMAL(5,2)",
        'temp6' => "DECIMAL(5,2)",
        'temp7' => "DECIMAL(5,2)",
        'temp8' => "DECIMAL(5,2)",
        'temp9' => "DECIMAL(5,2)",
        'temp10' => "DECIMAL(5,2)",
        'humedad' => "DECIMAL(5,2)",
        'presion' => "DECIMAL(6,2)"
    ];

    foreach ($columns as $name => $def) {
        $stmt = $pdo->query("SHOW COLUMNS FROM mediciones LIKE '$name'");
        if ($stmt->rowCount() == 0) {
            $pdo->exec("ALTER TABLE mediciones ADD COLUMN `$name` $def");
            echo "Columna '$name' agregada.<br>";
        }
    }

    // 5. Crear tabla mensajes_prueba si no existe
    $pdo->exec("CREATE TABLE IF NOT EXISTS mensajes_prueba (
        id INT AUTO_INCREMENT PRIMARY KEY,
        mensaje TEXT,
        fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        ip VARCHAR(45)
    ) ENGINE=InnoDB");

    // 6. Limpieza: Asegurar que hay al menos un buque_id
    $pdo->exec("UPDATE mediciones SET buque_id = 'BUQUE-01' WHERE buque_id IS NULL OR buque_id = ''");

    echo "<h1>¡Base de Datos Adaptada con Éxito!</h1>";
    echo "<p>La base de datos '$dbName' ahora soporta hasta 10 sensores y múltiples buques.</p>";

} catch (PDOException $e) {
    echo "<h1>Error Fatal</h1>";
    echo "<pre>" . $e->getMessage() . "</pre>";
}
?>