<?php
/**
 * Teste da API de Notificações
 * Testa a API que o app deveria chamar
 */

// Configurações de conexão com banco
$host = 'localhost';
$dbname = 'pinheir3_controle_frotasV1.1';
$username = 'pinheir3_admin';
$password = '080880Gelboy';

try {
    // Conectar ao banco
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    echo "🔗 TESTE DA API DE NOTIFICAÇÕES\n";
    echo "================================\n\n";
    
    $userId = '1'; // ID do gestor registrado
    
    echo "📱 Testando API para usuário: $userId\n\n";
    
    // URL que o app deveria chamar
    $apiUrl = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api/gestao/notificacoes.php?acao=nao_lidas&user_id=$userId";
    
    echo "🔗 URL da API:\n";
    echo "$apiUrl\n\n";
    
    // Testar a API
    echo "🧪 Testando a API...\n";
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_USERAGENT, 'ControleFrotasApp/1.0');
    
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_error($ch);
    curl_close($ch);
    
    echo "📊 Response Code: $httpCode\n";
    
    if ($error) {
        echo "❌ Erro cURL: $error\n";
    } else if ($response !== false) {
        echo "✅ Resposta recebida:\n";
        echo "📄 Response (primeiros 500 chars):\n";
        echo substr($response, 0, 500) . "...\n\n";
        
        // Tentar decodificar JSON
        $jsonData = json_decode($response, true);
        if ($jsonData) {
            echo "✅ JSON válido:\n";
            echo "📋 Success: " . ($jsonData['success'] ? 'true' : 'false') . "\n";
            
            if (isset($jsonData['data']['notificacoes_nao_lidas'])) {
                $notificacoes = $jsonData['data']['notificacoes_nao_lidas'];
                echo "📬 Notificações encontradas: " . count($notificacoes) . "\n";
                
                foreach ($notificacoes as $notif) {
                    echo "   - ID: {$notif['id']} | {$notif['titulo']}\n";
                }
            } else {
                echo "❌ Nenhuma notificação na resposta\n";
            }
        } else {
            echo "❌ JSON inválido\n";
        }
    } else {
        echo "❌ Falha ao acessar API\n";
    }
    
    // Verificar diretamente no banco
    echo "\n📊 Verificação direta no banco:\n";
    $stmt = $pdo->prepare("
        SELECT id, titulo, mensagem, lida, data_envio 
        FROM notificacoes_push 
        WHERE user_id = ? AND lida = FALSE 
        ORDER BY data_envio DESC
    ");
    $stmt->execute([$userId]);
    $notificacoes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "📬 Notificações não lidas no banco: " . count($notificacoes) . "\n";
    foreach ($notificacoes as $notif) {
        echo "   - ID: {$notif['id']} | {$notif['titulo']} | {$notif['data_envio']}\n";
    }
    
    echo "\n🔧 DIAGNÓSTICO:\n";
    echo "===============\n";
    echo "✅ Banco: Funcionando\n";
    echo "✅ Notificações: Existem no banco\n";
    if ($httpCode == 200) {
        echo "✅ API: Respondendo (HTTP $httpCode)\n";
    } else {
        echo "❌ API: Erro HTTP $httpCode\n";
    }
    echo "❓ App: Precisa testar\n\n";
    
    echo "📱 PRÓXIMOS PASSOS:\n";
    echo "==================\n";
    echo "1. 📱 Abra o app no celular\n";
    echo "2. 🔄 Puxe para baixo na tela de notificações\n";
    echo "3. 🔍 Verifique se aparece a notificação\n";
    echo "4. 📋 Se não aparecer, verifique os logs do app\n";
    echo "5. ⚙️ Verifique configurações de notificação do Android\n\n";
    
    echo "✅ Teste da API concluído!\n";
    
} catch (PDOException $e) {
    echo "❌ ERRO DE CONEXÃO COM BANCO:\n";
    echo "=============================\n";
    echo "Erro: " . $e->getMessage() . "\n";
} catch (Exception $e) {
    echo "❌ ERRO GERAL:\n";
    echo "==============\n";
    echo "Erro: " . $e->getMessage() . "\n";
}
?> 
