<?php
/**
 * Teste de Criação de Notificação ao Enviar Solicitação
 */

echo "🧪 Teste de Criação de Notificação\n";
echo "==================================\n\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);
    
    echo "1. 📊 Status inicial...\n";
    
    // Verificar solicitações existentes
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes_viagem WHERE status = 'pendente'");
    $totalSolicitacoes = $stmt->fetch()['total'];
    echo "   📋 Solicitações pendentes: $totalSolicitacoes\n";
    
    // Verificar notificações existentes
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM notificacoes_push WHERE lida = 0");
    $totalNotificacoes = $stmt->fetch()['total'];
    echo "   📬 Notificações não lidas: $totalNotificacoes\n\n";
    
    echo "2. 🚗 Enviando nova solicitação...\n";
    
    // Dados da solicitação de teste
    $solicitacaoData = [
        'veiculo_id' => 1,
        'cliente' => 'Empresa Teste Ltda',
        'motivo' => 'Teste de notificação',
        'km_inicial' => 15000,
        'latitude_inicial' => -11.0168,
        'longitude_inicial' => -37.0762,
        'endereco_inicial' => 'Av. Teste, 123',
        'observacoes' => 'Teste de criação de notificação',
        'prioridade' => 'normal',
        'gestor_id' => 2
    ];
    
    // Simular requisição POST com dados
    $_SERVER['REQUEST_METHOD'] = 'POST';
    $_GET['acao'] = 'criar';
    
    // Simular dados POST
    $input = json_encode($solicitacaoData);
    file_put_contents('php://input', $input);
    
    // Capturar output da API
    ob_start();
    
    // Incluir a API
    include '../api/gestao/solicitacoes-viagem-simples.php';
    
    $response = ob_get_clean();
    
    echo "   📡 Resposta da API:\n";
    echo "   $response\n\n";
    
    echo "3. 🔍 Verificando se a notificação foi criada...\n";
    
    // Verificar se a solicitação foi criada
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM solicitacoes_viagem WHERE status = 'pendente' ORDER BY id DESC LIMIT 1");
    $novaSolicitacao = $stmt->fetch()['total'];
    echo "   📋 Nova solicitação criada: " . ($novaSolicitacao > 0 ? "✅ Sim" : "❌ Não") . "\n";
    
    // Verificar se a notificação foi criada
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM notificacoes_push WHERE lida = 0 ORDER BY id DESC LIMIT 1");
    $novaNotificacao = $stmt->fetch()['total'];
    echo "   📬 Nova notificação criada: " . ($novaNotificacao > 0 ? "✅ Sim" : "❌ Não") . "\n\n";
    
    echo "4. 📄 Últimas notificações criadas:\n";
    
    $stmt = $pdo->query("
        SELECT * FROM notificacoes_push 
        ORDER BY id DESC 
        LIMIT 3
    ");
    $ultimasNotificacoes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if ($ultimasNotificacoes) {
        foreach ($ultimasNotificacoes as $notificacao) {
            echo "   📋 ID: {$notificacao['id']}\n";
            echo "   👤 User ID: {$notificacao['user_id']}\n";
            echo "   📝 Título: {$notificacao['titulo']}\n";
            echo "   📄 Mensagem: {$notificacao['mensagem']}\n";
            echo "   📅 Data: {$notificacao['data_envio']}\n";
            echo "   👁️ Lida: " . ($notificacao['lida'] ? 'Sim' : 'Não') . "\n";
            echo "   ---\n";
        }
    } else {
        echo "   ❌ Nenhuma notificação encontrada\n";
    }
    
    echo "\n5. 🧪 Testando API de notificações...\n";
    
    // Testar API de notificações para gestor ID 2
    $_SERVER['REQUEST_METHOD'] = 'GET';
    $_GET['acao'] = 'nao_lidas';
    $_GET['user_id'] = '2';
    
    ob_start();
    include '../api/gestao/notificacoes.php';
    $notificacoesResponse = ob_get_clean();
    
    echo "   📊 Resposta da API de notificações:\n";
    echo "   $notificacoesResponse\n\n";
    
    echo "6. 🎯 Instruções para testar no app:\n";
    echo "   - Abra o app como gestor (ID: 2)\n";
    echo "   - Vá para 'Notificações'\n";
    echo "   - Verifique se a notificação aparece\n";
    echo "   - Teste marcar como lida\n\n";
    
    echo "7. 🔧 Se as notificações não aparecerem:\n";
    echo "   - Verifique os logs no Android Studio\n";
    echo "   - Confirme se o user_id está correto\n";
    echo "   - Verifique se a API está retornando dados\n";
    echo "   - Execute este teste novamente\n";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}

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