<?php
/**
 * Teste Simples de Navegação após Solicitação
 */

echo "🧪 Teste de Navegação após Solicitação\n";
echo "=====================================\n\n";

// Simular criação de solicitação
echo "1. 📝 Criando solicitação de teste...\n";

$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->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // Inserir solicitação de teste
    $sql = "INSERT INTO solicitacoes_viagem (
        tecnico_id, veiculo_id, cliente, motivo, km_inicial,
        latitude_inicial, longitude_inicial, endereco_inicial,
        cliente_id, gestor_id, observacoes, prioridade, status
    ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pendente')";
    
    $params = [
        4, // tecnico_id (motorista)
        2, // veiculo_id
        'Cliente Teste Navegação',
        'Teste de navegação após solicitação',
        100, // km_inicial
        37.42199830, // latitude_inicial
        -122.08400000, // longitude_inicial
        'Endereço de teste para navegação',
        2, // cliente_id
        2, // gestor_id
        'Teste para verificar navegação',
        'normal' // prioridade
    ];
    
    $stmt = $pdo->prepare($sql);
    $stmt->execute($params);
    $solicitacaoId = $pdo->lastInsertId();
    
    echo "✅ Solicitação criada com ID: $solicitacaoId\n\n";
    
    // Verificar se a solicitação foi criada
    $sql = "SELECT * FROM solicitacoes_viagem WHERE id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$solicitacaoId]);
    $solicitacao = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if ($solicitacao) {
        echo "2. 📊 Dados da solicitação criada:\n";
        echo "   - ID: {$solicitacao['id']}\n";
        echo "   - Cliente: {$solicitacao['cliente']}\n";
        echo "   - Motivo: {$solicitacao['motivo']}\n";
        echo "   - Status: {$solicitacao['status']}\n";
        echo "   - Motorista ID: {$solicitacao['tecnico_id']}\n";
        echo "   - Gestor ID: {$solicitacao['gestor_id']}\n\n";
        
        echo "3. 🧪 Testando API de solicitações do motorista...\n";
        
        // Simular chamada para API de solicitações do motorista
        $motoristaId = $solicitacao['tecnico_id'];
        $sql = "SELECT 
                    sv.id,
                    sv.tecnico_id,
                    COALESCE(m.nome, 'Motorista') as tecnico_nome,
                    sv.veiculo_id,
                    COALESCE(v.modelo, 'Veículo') as veiculo_modelo,
                    COALESCE(v.placa, 'ABC-1234') as veiculo_placa,
                    sv.cliente,
                    sv.motivo,
                    sv.km_inicial,
                    COALESCE(sv.latitude_inicial, 0) as latitude_inicial,
                    COALESCE(sv.longitude_inicial, 0) as longitude_inicial,
                    COALESCE(sv.endereco_inicial, 'Endereço não informado') as endereco_inicial,
                    COALESCE(sv.cliente_id, 0) as cliente_id,
                    COALESCE(sv.status, 'pendente') as status,
                    COALESCE(sv.observacoes, '') as observacoes,
                    COALESCE(sv.prioridade, 'normal') as prioridade,
                    DATE_FORMAT(sv.created_at, '%Y-%m-%d %H:%i:%s') as data_solicitacao,
                    TIMESTAMPDIFF(MINUTE, sv.created_at, NOW()) as tempo_espera_minutos
                FROM solicitacoes_viagem sv
                LEFT JOIN motoristas m ON sv.tecnico_id = m.id
                LEFT JOIN veiculos v ON sv.veiculo_id = v.id
                WHERE sv.tecnico_id = ?
                ORDER BY sv.created_at DESC";
        
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$motoristaId]);
        $solicitacoesMotorista = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "✅ API retornou " . count($solicitacoesMotorista) . " solicitações para o motorista\n";
        
        if (count($solicitacoesMotorista) > 0) {
            echo "   - Solicitação mais recente: {$solicitacoesMotorista[0]['cliente']} - {$solicitacoesMotorista[0]['motivo']}\n";
            echo "   - Status: {$solicitacoesMotorista[0]['status']}\n";
            echo "   - Tempo de espera: {$solicitacoesMotorista[0]['tempo_espera_minutos']} minutos\n\n";
        }
        
        echo "4. 🎯 Fluxo esperado no app:\n";
        echo "   ✅ Solicitação criada com sucesso\n";
        echo "   ✅ App recebe resposta de sucesso\n";
        echo "   ✅ App chama onSolicitacaoCriada($solicitacaoId)\n";
        echo "   ✅ App navega para AguardandoAprovacao\n";
        echo "   ✅ Tela carrega lista de solicitações\n";
        echo "   ✅ Solicitação aparece como 'pendente'\n\n";
        
        echo "5. 📱 Logs esperados no Android Studio:\n";
        echo "   SolicitarViagemScreen: ✅ Solicitação criada com sucesso! ID: $solicitacaoId\n";
        echo "   SolicitarViagemScreen: 🚀 Chamando onSolicitacaoCriada com ID: $solicitacaoId\n";
        echo "   AppNavigation: 🚀 Callback onSolicitacaoCriada recebido! ID: $solicitacaoId\n";
        echo "   AppNavigation: 🎯 Navegando para AguardandoAprovacao\n";
        echo "   AppNavigation: ✅ Navegação executada\n";
        echo "   AguardandoAprovacaoScreen: 🎬 Tela iniciada\n";
        echo "   AguardandoAprovacaoScreen: 🚀 Iniciando carregamento de solicitações\n";
        echo "   AguardandoAprovacaoViewModel: 🔄 Carregando solicitações do motorista\n";
        echo "   AguardandoAprovacaoViewModel: ✅ " . count($solicitacoesMotorista) . " solicitações carregadas\n\n";
        
        echo "6. 🔧 Verificações no app:\n";
        echo "   - Abra o app no dispositivo/emulador\n";
        echo "   - Faça login como motorista\n";
        echo "   - Vá para 'Solicitar Viagem'\n";
        echo "   - Preencha todos os campos\n";
        echo "   - Clique em 'Enviar Solicitação'\n";
        echo "   - Verifique se navega automaticamente para 'Minhas Solicitações'\n";
        echo "   - Verifique se a solicitação aparece na lista\n\n";
        
        echo "7. 🚨 Se a navegação não funcionar:\n";
        echo "   - Verifique os logs no Android Studio\n";
        echo "   - Verifique se não há erros de compilação\n";
        echo "   - Verifique se a tela AguardandoAprovacaoScreen existe\n";
        echo "   - Verifique se o callback onSolicitacaoCriada está sendo chamado\n";
        echo "   - Verifique se o navController está funcionando\n";
        echo "   - Verifique se a API está retornando dados corretos\n\n";
        
    } else {
        echo "❌ Erro: Solicitação não foi encontrada após criação\n";
    }
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}

echo "✅ Teste concluído!\n";
?> 
