<?php
/**
 * Script para executar correção da estrutura da tabela solicitacoes_viagem
 */

require_once 'config/bootstrap.php';

use ControleFrotas\Config\Database;

try {
    $pdo = Database::getConnection();
    echo "✅ Conexão com banco estabelecida\n";
    
    // Ler o arquivo SQL
    $sql = file_get_contents('corrigir-solicitacoes-viagem.sql');
    
    // Dividir em comandos individuais
    $commands = explode(';', $sql);
    
    foreach ($commands as $command) {
        $command = trim($command);
        if (empty($command)) continue;
        
        try {
            echo "Executando: " . substr($command, 0, 50) . "...\n";
            $pdo->exec($command);
            echo "✅ Comando executado com sucesso\n";
        } catch (Exception $e) {
            echo "⚠️  Aviso: " . $e->getMessage() . "\n";
            // Continuar mesmo com erros (alguns comandos podem falhar se já existirem)
        }
    }
    
    echo "\n🎉 Correção da estrutura concluída!\n";
    
    // Verificar se a tabela está funcionando
    echo "\n🧪 Testando inserção...\n";
    $stmt = $pdo->prepare("INSERT INTO solicitacoes_viagem (
        tecnico_id, veiculo_id, cliente, motivo, km_inicial,
        latitude_inicial, longitude_inicial, endereco_inicial,
        observacoes, prioridade, status
    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
    
    $result = $stmt->execute([
        '4', // tecnico_id
        6,   // veiculo_id
        'Cliente Teste Final',
        'Motivo Teste Final',
        100, // km_inicial
        -10.9265, // latitude_inicial
        -37.0722, // longitude_inicial
        'Endereço Teste Final',
        'Observação teste final',
        'normal', // prioridade
        'pendente' // status
    ]);
    
    if ($result) {
        $id = $pdo->lastInsertId();
        echo "✅ Inserção de teste realizada com sucesso! ID: $id\n";
        
        // Limpar teste
        $pdo->exec("DELETE FROM solicitacoes_viagem WHERE id = $id");
        echo "🧹 Registro de teste removido\n";
        
        echo "\n🎉 Tabela solicitacoes_viagem está funcionando corretamente!\n";
    } else {
        echo "❌ Erro na inserção de teste\n";
        print_r($stmt->errorInfo());
    }
    
} catch (Exception $e) {
    echo "❌ ERRO: " . $e->getMessage() . "\n";
    echo "📋 Stack trace:\n" . $e->getTraceAsString() . "\n";
}
?> 
