<?php
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=utf8mb4", $username, $password, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    ]);
    
    echo "🔧 FORÇANDO CORREÇÃO ROTA 24\n";
    echo "============================\n\n";
    
    // 1. Verificar status atual
    echo "📋 STATUS ATUAL:\n";
    $stmt = $pdo->query("SELECT id, titulo, status, data_inicio_real FROM solicitacoes_rotas WHERE id = 24");
    $rota = $stmt->fetch();
    
    if (!$rota) {
        echo "❌ ROTA 24 NÃO ENCONTRADA!\n";
        exit;
    }
    
    echo "  - ID: {$rota['id']}\n";
    echo "  - Título: {$rota['titulo']}\n";
    echo "  - Status: '{$rota['status']}'\n";
    echo "  - Data início: " . ($rota['data_inicio_real'] ?: 'NULL') . "\n\n";
    
    // 2. Forçar correção com SQL direto
    echo "🔧 FORÇANDO CORREÇÃO COM SQL DIRETO...\n";
    
    // Primeiro, verificar se a rota existe
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes_rotas WHERE id = 24");
    $count = $stmt->fetchColumn();
    echo "  - Rotas com ID 24: $count\n";
    
    // Tentar UPDATE direto
    $sql = "UPDATE solicitacoes_rotas SET status = 'em_andamento' WHERE id = 24";
    echo "  - SQL: $sql\n";
    
    $stmt = $pdo->prepare($sql);
    $result = $stmt->execute();
    $rowCount = $stmt->rowCount();
    
    echo "  - Execute result: " . ($result ? 'SUCCESS' : 'FAILED') . "\n";
    echo "  - Rows affected: $rowCount\n\n";
    
    // 3. Verificar se foi corrigido
    echo "📋 STATUS APÓS CORREÇÃO:\n";
    $stmt = $pdo->query("SELECT id, titulo, status, data_inicio_real FROM solicitacoes_rotas WHERE id = 24");
    $rotaCorrigida = $stmt->fetch();
    
    echo "  - ID: {$rotaCorrigida['id']}\n";
    echo "  - Título: {$rotaCorrigida['titulo']}\n";
    echo "  - Status: '{$rotaCorrigida['status']}'\n";
    echo "  - Data início: " . ($rotaCorrigida['data_inicio_real'] ?: 'NULL') . "\n\n";
    
    // 4. Se ainda não funcionou, tentar com REPLACE
    if (empty($rotaCorrigida['status']) || $rotaCorrigida['status'] == '') {
        echo "⚠️ UPDATE NÃO FUNCIONOU, TENTANDO REPLACE...\n";
        
        // Pegar todos os dados da rota
        $stmt = $pdo->query("SELECT * FROM solicitacoes_rotas WHERE id = 24");
        $rotaCompleta = $stmt->fetch();
        
        if ($rotaCompleta) {
            // Criar SQL REPLACE
            $sql = "REPLACE INTO solicitacoes_rotas SET 
                    id = ?, 
                    titulo = ?, 
                    descricao = ?, 
                    motorista_id = ?, 
                    veiculo_id = ?, 
                    km_estimado = ?, 
                    status = 'em_andamento',
                    data_inicio_real = COALESCE(?, NOW()),
                    data_fim_real = ?,
                    observacoes_finais = ?,
                    justificativa_km = ?,
                    km_real = ?,
                    diferenca_km_calculada = ?,
                    created_at = ?,
                    updated_at = NOW()";
            
            $stmt = $pdo->prepare($sql);
            $result = $stmt->execute([
                $rotaCompleta['id'],
                $rotaCompleta['titulo'],
                $rotaCompleta['descricao'],
                $rotaCompleta['motorista_id'],
                $rotaCompleta['veiculo_id'],
                $rotaCompleta['km_estimado'],
                $rotaCompleta['data_inicio_real'],
                $rotaCompleta['data_fim_real'],
                $rotaCompleta['observacoes_finais'],
                $rotaCompleta['justificativa_km'],
                $rotaCompleta['km_real'],
                $rotaCompleta['diferenca_km_calculada'],
                $rotaCompleta['created_at']
            ]);
            
            echo "  - REPLACE result: " . ($result ? 'SUCCESS' : 'FAILED') . "\n";
            
            // Verificar novamente
            $stmt = $pdo->query("SELECT id, titulo, status FROM solicitacoes_rotas WHERE id = 24");
            $rotaFinal = $stmt->fetch();
            echo "  - Status final: '{$rotaFinal['status']}'\n\n";
        }
    }
    
    // 5. Testar se aparece no dashboard
    echo "🧪 TESTANDO DASHBOARD:\n";
    
    $stmt = $pdo->query("
        SELECT 
            sr.id as id,
            sr.titulo as cliente,
            sr.descricao as motivo,
            sr.status as rota_status,
            'rota' as tipo
        FROM solicitacoes_rotas sr
        WHERE sr.status IN ('aprovada', 'em_andamento', 'concluida')
        AND sr.id = 24
    ");
    $resultado = $stmt->fetch();
    
    if ($resultado) {
        echo "✅ SUCESSO! ROTA APARECE NO DASHBOARD:\n";
        echo "  - ID: {$resultado['id']}\n";
        echo "  - Cliente: {$resultado['cliente']}\n";
        echo "  - Status: {$resultado['rota_status']}\n";
        echo "  - Tipo: {$resultado['tipo']}\n\n";
        
        echo "🎯 AGORA ATUALIZE O DASHBOARD WEB!\n";
        
    } else {
        echo "❌ PROBLEMA! ROTA AINDA NÃO APARECE NO DASHBOARD\n";
        echo "   Verificando estrutura da tabela...\n\n";
        
        // Verificar estrutura da tabela
        echo "🔍 ESTRUTURA DA TABELA:\n";
        $stmt = $pdo->query("DESCRIBE solicitacoes_rotas");
        $colunas = $stmt->fetchAll();
        
        foreach ($colunas as $coluna) {
            if ($coluna['Field'] == 'status') {
                echo "  - Campo 'status': {$coluna['Type']} - {$coluna['Null']} - {$coluna['Default']}\n";
            }
        }
    }
    
    // 6. Garantir que próximas viagens funcionem
    echo "\n🔧 GARANTINDO FUNCIONAMENTO FUTURO:\n";
    echo "  ✅ API corrigida para capturar km_inicial\n";
    echo "  ✅ Status da rota será atualizado automaticamente\n";
    echo "  ✅ Próximas rotas devem aparecer no dashboard\n\n";
    
    echo "🎯 PRÓXIMOS PASSOS:\n";
    echo "  1. Atualize o dashboard web\n";
    echo "  2. A rota 24 deve aparecer\n";
    echo "  3. Próximas rotas funcionarão automaticamente\n";
    
} catch (Exception $e) {
    echo "❌ ERRO: " . $e->getMessage() . "\n";
}
?>
