<?php
// Teste direto de inserção na tabela rastreamento_tempo_real
header('Content-Type: text/plain; charset=utf-8');

echo "=== TESTE DIRETO DE INSERÇÃO NA TABELA rastreamento_tempo_real ===\n\n";

try {
    // Conectar ao banco com as credenciais corretas
    $host = 'localhost';
    $dbname = 'pinheir3_controle_frotasV1.1';
    $username = 'pinheir3_admin';
    $password = '080880Gelboy';
    
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    echo "✅ Conexão com banco estabelecida!\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
        echo "2. 📋 ESTRUTURA DA TABELA:\n";
        $stmt = $pdo->query("DESCRIBE rastreamento_tempo_real");
        $colunas = $stmt->fetchAll();
        
        foreach ($colunas as $coluna) {
            echo "   - " . $coluna['Field'] . " (" . $coluna['Type'] . ") " . 
                 ($coluna['Null'] == 'YES' ? 'NULL' : 'NOT NULL') . 
                 ($coluna['Key'] ? ' ' . $coluna['Key'] : '') . "\n";
        }
        
        echo "\n";
        
        // 3. Contar registros atuais
        echo "3. 📊 REGISTROS ATUAIS:\n";
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real");
        $total = $stmt->fetch();
        echo "   - Total de registros: " . $total['total'] . "\n\n";
        
        // 4. Testar inserção
        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(), ?, ?)
            ");
            
            $dados_teste = [
                '4', // tecnico_id
                267, // viagem_id (viagem atual)
                37.4219983, // latitude
                -122.084, // longitude
                0.0, // velocidade
                5.0, // precisao
                5.0, // altitude
                null, // battery_level
                1 // is_online
            ];
            
            $resultado = $stmt->execute($dados_teste);
            
            if ($resultado) {
                $id_inserido = $pdo->lastInsertId();
                echo "   ✅ INSERÇÃO BEM-SUCEDIDA! ID: $id_inserido\n";
                
                // 5. Verificar se foi realmente inserido
                echo "\n5. 🔍 VERIFICAÇÃO DA INSERÇÃO:\n";
                $stmt = $pdo->prepare("SELECT * FROM rastreamento_tempo_real WHERE id = ?");
                $stmt->execute([$id_inserido]);
                $registro = $stmt->fetch();
                
                if ($registro) {
                    echo "   ✅ Registro encontrado:\n";
                    echo "      - ID: " . $registro['id'] . "\n";
                    echo "      - Técnico: " . $registro['tecnico_id'] . "\n";
                    echo "      - Viagem: " . $registro['viagem_id'] . "\n";
                    echo "      - Lat: " . $registro['latitude'] . "\n";
                    echo "      - Lon: " . $registro['longitude'] . "\n";
                    echo "      - Timestamp: " . $registro['timestamp_gps'] . "\n";
                } else {
                    echo "   ❌ Registro NÃO encontrado após inserção!\n";
                }
                
                // 6. Contar registros após inserção
                echo "\n6. 📊 REGISTROS APÓS INSERÇÃO:\n";
                $stmt = $pdo->query("SELECT COUNT(*) as total FROM rastreamento_tempo_real");
                $total_apos = $stmt->fetch();
                echo "   - Total de registros: " . $total_apos['total'] . "\n";
                
                if ($total_apos['total'] > $total['total']) {
                    echo "   ✅ CONTADOR AUMENTOU! Inserção confirmada.\n";
                } else {
                    echo "   ❌ CONTADOR NÃO AUMENTOU! Problema na inserção.\n";
                }
                
            } else {
                echo "   ❌ FALHA NA INSERÇÃO!\n";
            }
            
        } catch (Exception $e) {
            echo "   ❌ ERRO NA INSERÇÃO: " . $e->getMessage() . "\n";
        }
        
    } else {
        echo "❌ Tabela rastreamento_tempo_real NÃO EXISTE!\n\n";
        
        // Tentar criar a tabela
        echo "🔨 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 DO TESTE ===\n";
    
} catch (Exception $e) {
    echo "❌ ERRO GERAL: " . $e->getMessage() . "\n";
}
?>
