<?php
/**
 * Teste de Notificações no App
 * Verifica se o app está conseguindo buscar notificações
 */

// 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 DE NOTIFICAÇÕES NO APP\n";
    echo "===============================\n\n";
    
    $userId = '1'; // ID do gestor registrado
    
    echo "📱 Testando para usuário: $userId\n\n";
    
    // 1. Verificar se há notificações no banco
    echo "📊 Verificando notificações 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";
    }
    
    // 2. Testar a API que o app deveria chamar
    echo "\n🔗 Testando API que o app deveria chamar...\n";
    $apiUrl = "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api/gestao/notificacoes.php?acao=nao_lidas&user_id=$userId";
    
    $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 300 chars):\n";
        echo substr($response, 0, 300) . "...\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'])) {
                $notificacoesApi = $jsonData['data']['notificacoes_nao_lidas'];
                echo "📬 Notificações na API: " . count($notificacoesApi) . "\n";
                
                foreach ($notificacoesApi as $notif) {
                    echo "   - ID: {$notif['id']} | {$notif['titulo']}\n";
                }
            } else {
                echo "❌ Nenhuma notificação na resposta da API\n";
            }
        } else {
            echo "❌ JSON inválido\n";
        }
    } else {
        echo "❌ Falha ao acessar API\n";
    }
    
    // 3. Criar uma nova notificação de teste
    echo "\n📨 Criando nova notificação de teste...\n";
    $titulo = "🧪 Teste " . date('H:i:s');
    $mensagem = "Esta é uma notificação de teste criada em " . date('H:i:s');
    $tipo = "teste";
    $solicitacaoId = 999;
    
    $stmt = $pdo->prepare("
        INSERT INTO notificacoes_push 
        (user_id, titulo, mensagem, tipo, solicitacao_id, lida, data_envio) 
        VALUES (?, ?, ?, ?, ?, FALSE, NOW())
    ");
    
    $stmt->execute([$userId, $titulo, $mensagem, $tipo, $solicitacaoId]);
    $notificacaoId = $pdo->lastInsertId();
    
    echo "✅ Nova notificação criada: ID=$notificacaoId\n";
    echo "   - Título: $titulo\n";
    echo "   - Mensagem: $mensagem\n\n";
    
    echo "🎯 PRÓXIMOS PASSOS:\n";
    echo "==================\n";
    echo "1. 📱 Abra o app no celular\n";
    echo "2. 🔐 Faça login como gestor (admin ou gestor)\n";
    echo "3. 📬 Vá para a tela de Notificações\n";
    echo "4. 🔄 Clique no botão 'Atualizar Notificações'\n";
    echo "5. 🔍 Verifique se a nova notificação aparece\n";
    echo "6. 📋 Se não aparecer, verifique os logs do app\n\n";
    
    echo "🔧 CONFIGURAÇÕES IMPORTANTES:\n";
    echo "============================\n";
    echo "• App deve estar logado como gestor\n";
    echo "• Notificações do app devem estar habilitadas\n";
    echo "• App deve ter permissão para mostrar notificações\n";
    echo "• Verifique se o app está conectado à internet\n\n";
    
    echo "✅ Teste concluído!\n";
    echo "📱 Agora teste no app!\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";
}
?> 
