<?php
require_once 'conexao.php';

echo "<h2>🧪 Teste de Retomada de Viagem em Andamento</h2>";

try {
    // 1. Verificar viagens em andamento
    echo "<h3>1. Viagens em andamento no sistema:</h3>";
    
    $sqlViagensAtivas = "SELECT v.*, m.nome as motorista_nome 
                         FROM viagens v 
                         LEFT JOIN motoristas m ON (v.tecnico_id = m.id OR v.tecnico_id = m.nome)
                         WHERE v.data_fim IS NULL 
                         ORDER BY v.data_inicio DESC";
    
    $stmt = $pdo->prepare($sqlViagensAtivas);
    $stmt->execute();
    $viagensAtivas = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($viagensAtivas)) {
        echo "<p style='color: orange;'>⚠️ Nenhuma viagem em andamento encontrada.</p>";
        echo "<p>Para testar a retomada, inicie uma viagem no app Android.</p>";
    } else {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr style='background-color: #f0f0f0;'>";
        echo "<th>ID</th><th>Cliente</th><th>Motorista</th><th>Data Início</th><th>KM Inicial</th><th>Trajeto</th>";
        echo "</tr>";
        
        foreach ($viagensAtivas as $viagem) {
            $trajeto = $viagem['trajeto'];
            $pontosCount = 0;
            
            if ($trajeto) {
                $pontos = json_decode($trajeto, true);
                $pontosCount = $pontos ? count($pontos) : 0;
            }
            
            echo "<tr>";
            echo "<td>{$viagem['id']}</td>";
            echo "<td>{$viagem['cliente']}</td>";
            echo "<td>{$viagem['motorista_nome']}</td>";
            echo "<td>{$viagem['data_inicio']}</td>";
            echo "<td>{$viagem['km_inicial']}</td>";
            echo "<td>$pontosCount pontos</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 2. Verificar rotas em andamento
    echo "<h3>2. Rotas em andamento no sistema:</h3>";
    
    $sqlRotasAtivas = "SELECT sr.*, m.nome as motorista_nome 
                       FROM solicitacoes_rotas sr 
                       LEFT JOIN motoristas m ON sr.motorista_id = m.id
                       WHERE sr.status IN ('em_andamento', 'em_execucao') 
                       ORDER BY sr.data_inicio_real DESC";
    
    $stmt = $pdo->prepare($sqlRotasAtivas);
    $stmt->execute();
    $rotasAtivas = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($rotasAtivas)) {
        echo "<p style='color: orange;'>⚠️ Nenhuma rota em andamento encontrada.</p>";
    } else {
        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
        echo "<tr style='background-color: #f0f0f0;'>";
        echo "<th>ID</th><th>Título</th><th>Motorista</th><th>Status</th><th>Data Início</th><th>Viagens</th>";
        echo "</tr>";
        
        foreach ($rotasAtivas as $rota) {
            // Contar viagens da rota
            $sqlViagensRota = "SELECT COUNT(*) as total FROM rota_viagens rv 
                              INNER JOIN viagens v ON rv.viagem_id = v.id 
                              WHERE rv.solicitacao_rota_id = ? AND v.data_fim IS NULL";
            $stmtViagens = $pdo->prepare($sqlViagensRota);
            $stmtViagens->execute([$rota['id']]);
            $viagensCount = $stmtViagens->fetch()['total'];
            
            echo "<tr>";
            echo "<td>{$rota['id']}</td>";
            echo "<td>{$rota['titulo']}</td>";
            echo "<td>{$rota['motorista_nome']}</td>";
            echo "<td>{$rota['status']}</td>";
            echo "<td>{$rota['data_inicio_real']}</td>";
            echo "<td>$viagensCount ativas</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 3. Teste da API de verificação
    echo "<h3>3. Teste da API de verificação de viagem em andamento:</h3>";
    
    if (!empty($viagensAtivas)) {
        $primeiraViagem = $viagensAtivas[0];
        $tecnicoId = $primeiraViagem['tecnico_id'];
        
        echo "<p>Testando verificação para técnico ID: <strong>$tecnicoId</strong></p>";
        
        // Simular chamada da API
        $sqlVerificacao = "SELECT v.*, m.nome as motorista_nome 
                          FROM viagens v 
                          LEFT JOIN motoristas m ON (v.tecnico_id = m.id OR v.tecnico_id = m.nome)
                          WHERE v.tecnico_id = ? AND v.data_fim IS NULL 
                          ORDER BY v.data_inicio DESC 
                          LIMIT 1";
        
        $stmtVerificacao = $pdo->prepare($sqlVerificacao);
        $stmtVerificacao->execute([$tecnicoId]);
        $viagemEmAndamento = $stmtVerificacao->fetch(PDO::FETCH_ASSOC);
        
        if ($viagemEmAndamento) {
            echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
            echo "<p style='color: green;'>✅ <strong>Viagem em andamento encontrada!</strong></p>";
            echo "<ul>";
            echo "<li><strong>ID:</strong> {$viagemEmAndamento['id']}</li>";
            echo "<li><strong>Cliente:</strong> {$viagemEmAndamento['cliente']}</li>";
            echo "<li><strong>Motorista:</strong> {$viagemEmAndamento['motorista_nome']}</li>";
            echo "<li><strong>Data Início:</strong> {$viagemEmAndamento['data_inicio']}</li>";
            echo "<li><strong>KM Inicial:</strong> {$viagemEmAndamento['km_inicial']}</li>";
            echo "</ul>";
            echo "<p>O app Android deve navegar automaticamente para esta viagem ao ser aberto.</p>";
            echo "</div>";
        } else {
            echo "<p style='color: red;'>❌ Nenhuma viagem em andamento encontrada para o técnico.</p>";
        }
    }
    
    // 4. Instruções para teste
    echo "<h3>4. Como testar a retomada:</h3>";
    echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
    echo "<ol>";
    echo "<li><strong>Inicie uma viagem</strong> no app Android</li>";
    echo "<li><strong>Feche o app</strong> completamente (force stop)</li>";
    echo "<li><strong>Abra o app novamente</strong></li>";
    echo "<li><strong>Verifique se:</strong>";
    echo "<ul>";
    echo "<li>O app navega automaticamente para a tela de viagem em andamento</li>";
    echo "<li>O trajeto GPS é carregado corretamente</li>";
    echo "<li>O rastreamento GPS continua funcionando</li>";
    echo "</ul>";
    echo "</li>";
    echo "</ol>";
    echo "</div>";
    
    // 5. Status das correções
    echo "<h3>5. Status das correções implementadas:</h3>";
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<p style='color: green;'>✅ <strong>Correções aplicadas:</strong></p>";
    echo "<ul>";
    echo "<li><strong>MainActivity:</strong> Verifica viagem em andamento ao abrir o app</li>";
    echo "<li><strong>ViagemEmAndamentoScreen:</strong> Carrega trajeto salvo do banco</li>";
    echo "<li><strong>RotaEmAndamentoScreen:</strong> Carrega trajeto salvo do banco</li>";
    echo "<li><strong>LocationForegroundService:</strong> Continua funcionando em background</li>";
    echo "<li><strong>Navegação automática:</strong> App retoma viagem automaticamente</li>";
    echo "</ul>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<h3 style='color: red;'>❌ Erro: " . $e->getMessage() . "</h3>";
}
?>
