<?php
/**
 * Teste da API de Finalizar Rota
 * Para verificar se as correções estão funcionando
 */

// Configurar UTF-8 e CORS
header('Content-Type: application/json; charset=utf-8');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization');

// Responder OPTIONS para CORS
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit();
}

// Conectar ao banco
$host = 'localhost';
$dbname = 'pinheir3_controle_frotasV1.1';
$username = 'pinheir3_admin';
$password = '080880Gelboy';

try {
    $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";
    
    // Verificar estrutura da tabela solicitacoes_rotas
    $stmt = $pdo->query("DESCRIBE solicitacoes_rotas");
    $colunas = $stmt->fetchAll();
    
    echo "📋 Colunas da tabela solicitacoes_rotas:\n";
    foreach ($colunas as $coluna) {
        echo "  - {$coluna['Field']} ({$coluna['Type']})\n";
    }
    
    // Verificar se a coluna distancia_odometro_rota existe
    $colunaExiste = false;
    foreach ($colunas as $coluna) {
        if ($coluna['Field'] === 'distancia_odometro_rota') {
            $colunaExiste = true;
            break;
        }
    }
    
    if ($colunaExiste) {
        echo "✅ Coluna 'distancia_odometro_rota' encontrada!\n";
    } else {
        echo "❌ Coluna 'distancia_odometro_rota' NÃO encontrada!\n";
    }
    
    // Verificar se a coluna km_real ainda existe
    $colunaKmRealExiste = false;
    foreach ($colunas as $coluna) {
        if ($coluna['Field'] === 'km_real') {
            $colunaKmRealExiste = true;
            break;
        }
    }
    
    if ($colunaKmRealExiste) {
        echo "⚠️ Coluna 'km_real' ainda existe (deve ser removida)!\n";
    } else {
        echo "✅ Coluna 'km_real' não existe mais!\n";
    }
    
    // Testar UPDATE na tabela solicitacoes_rotas
    echo "\n🧪 Testando UPDATE na tabela solicitacoes_rotas...\n";
    
    try {
        $sqlTeste = "UPDATE solicitacoes_rotas SET 
                     distancia_odometro_rota = 100,
                     status = 'teste'
                     WHERE id = 999999"; // ID que não existe
        
        $stmt = $pdo->prepare($sqlTeste);
        $stmt->execute();
        
        echo "✅ UPDATE funcionou! (0 linhas afetadas - esperado)\n";
        
    } catch (Exception $e) {
        echo "❌ Erro no UPDATE: " . $e->getMessage() . "\n";
    }
    
    // Testar UPDATE na tabela viagens
    echo "\n🧪 Testando UPDATE na tabela viagens...\n";
    
    try {
        $sqlTeste = "UPDATE viagens SET 
                     odometro_final = 100,
                     distancia_gps = 50
                     WHERE id = 999999"; // ID que não existe
        
        $stmt = $pdo->prepare($sqlTeste);
        $stmt->execute();
        
        echo "✅ UPDATE funcionou! (0 linhas afetadas - esperado)\n";
        
    } catch (Exception $e) {
        echo "❌ Erro no UPDATE: " . $e->getMessage() . "\n";
    }
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}
?>
