<?php
// Verificar se a tabela rastreamento_tempo_real existe e tem a estrutura correta
header('Content-Type: text/plain; charset=utf-8');

try {
    // Conectar ao banco
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "=== VERIFICAÇÃO DA TABELA rastreamento_tempo_real ===\n\n";
    
    // 1. Verificar se a tabela existe
    echo "1. 🔍 VERIFICANDO SE A TABELA EXISTE:\n";
    $stmt = $pdo->query("SHOW TABLES LIKE 'rastreamento_tempo_real'");
    $tabelaExiste = $stmt->rowCount() > 0;
    
    if ($tabelaExiste) {
        echo "✅ Tabela rastreamento_tempo_real EXISTE!\n\n";
        
        // 2. Verificar estrutura da tabela
        echo "2. 📋 ESTRUTURA DA TABELA:\n";
        $stmt = $pdo->query("DESCRIBE rastreamento_tempo_real");
        $colunas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        foreach ($colunas as $coluna) {
            echo "   - " . $coluna['Field'] . " (" . $coluna['Type'] . ") " . 
                 ($coluna['Null'] == 'YES' ? 'NULL' : 'NOT NULL') . 
                 ($coluna['Key'] ? ' ' . $coluna['Key'] : '') . "\n";
        }
        
        echo "\n";
        
        // 3. Verificar se há dados
        echo "3. 📊 DADOS NA TABELA:\n";
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real");
        $total = $stmt->fetch(PDO::FETCH_ASSOC);
        
        echo "   - Total de registros: " . $total['total'] . "\n";
        
        if ($total['total'] > 0) {
            // Mostrar alguns registros de exemplo
            $stmt = $pdo->query("SELECT * FROM rastreamento_tempo_real ORDER BY id DESC LIMIT 5");
            $registros = $stmt->fetchAll(PDO::FETCH_ASSOC);
            
            echo "   - Últimos 5 registros:\n";
            foreach ($registros as $i => $registro) {
                echo "     " . ($i + 1) . ". ID: " . $registro['id'] . 
                     " | Viagem: " . $registro['viagem_id'] . 
                     " | Técnico: " . $registro['tecnico_id'] . 
                     " | Lat: " . $registro['latitude'] . 
                     " | Lon: " . $registro['longitude'] . 
                     " | Timestamp: " . $registro['timestamp_gps'] . "\n";
            }
        } else {
            echo "   ❌ NENHUM REGISTRO ENCONTRADO!\n";
        }
        
        echo "\n";
        
        // 4. Testar inserção de um registro
        echo "4. 🧪 TESTE DE INSERÇÃO:\n";
        try {
            $stmt = $pdo->prepare("
                INSERT INTO rastreamento_tempo_real (
                    tecnico_id, viagem_id, latitude, longitude, velocidade, 
                    precisao, altitude, timestamp_gps, battery_level, is_online
                ) VALUES (?, ?, ?, ?, ?, ?, ?, NOW(), ?, ?)
            ");
            
            $resultado = $stmt->execute([
                '4', // tecnico_id
                999, // viagem_id (teste)
                37.4219983, // latitude
                -122.084, // longitude
                0.0, // velocidade
                5.0, // precisao
                5.0, // altitude
                null, // battery_level
                1 // is_online
            ]);
            
            if ($resultado) {
                echo "   ✅ INSERÇÃO DE TESTE BEM-SUCEDIDA!\n";
                
                // Remover o registro de teste
                $stmt = $pdo->prepare("DELETE FROM rastreamento_tempo_real WHERE viagem_id = 999");
                $stmt->execute();
                echo "   🧹 Registro de teste removido\n";
            } else {
                echo "   ❌ FALHA NA INSERÇÃO DE TESTE!\n";
            }
        } catch (Exception $e) {
            echo "   ❌ ERRO NA INSERÇÃO DE TESTE: " . $e->getMessage() . "\n";
        }
        
    } else {
        echo "❌ Tabela rastreamento_tempo_real NÃO EXISTE!\n\n";
        
        // 5. Tentar criar a tabela
        echo "5. 🔨 TENTANDO CRIAR A TABELA:\n";
        try {
            $sql = "CREATE TABLE rastreamento_tempo_real (
                id BIGINT AUTO_INCREMENT PRIMARY KEY,
                tecnico_id VARCHAR(100) NOT NULL,
                viagem_id BIGINT NULL,
                latitude DECIMAL(10, 8) NOT NULL,
                longitude DECIMAL(11, 8) NOT NULL,
                velocidade DECIMAL(5, 2) DEFAULT 0,
                precisao DECIMAL(8, 2) DEFAULT 0,
                altitude DECIMAL(8, 2) DEFAULT 0,
                timestamp_gps DATETIME DEFAULT CURRENT_TIMESTAMP,
                battery_level INT DEFAULT NULL,
                is_online BOOLEAN DEFAULT TRUE,
                INDEX idx_viagem_id (viagem_id),
                INDEX idx_tecnico_id (tecnico_id),
                INDEX idx_timestamp (timestamp_gps)
            )";
            
            $pdo->exec($sql);
            echo "   ✅ TABELA CRIADA COM SUCESSO!\n";
        } catch (Exception $e) {
            echo "   ❌ ERRO AO CRIAR TABELA: " . $e->getMessage() . "\n";
        }
    }
    
    echo "\n=== FIM DA VERIFICAÇÃO ===\n";
    
} catch (Exception $e) {
    echo "❌ ERRO: " . $e->getMessage() . "\n";
}
?>
