<?php
/**
 * Teste de Notificações no App
 * Verifica se o sistema de notificações está funcionando
 */

// 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";
    
    // Verificar se as tabelas existem
    echo "📋 Verificando tabelas...\n";
    
    $stmt = $pdo->query("SHOW TABLES LIKE 'notificacoes_push'");
    if ($stmt->rowCount() == 0) {
        echo "❌ Tabela notificacoes_push não existe\n";
        echo "💡 Execute: php criar-tabela-notificacoes.php\n";
        exit;
    }
    
    $stmt = $pdo->query("SHOW TABLES LIKE 'fcm_tokens'");
    if ($stmt->rowCount() == 0) {
        echo "❌ Tabela fcm_tokens não existe\n";
        echo "💡 Execute: php criar-tabela-notificacoes.php\n";
        exit;
    }
    
    echo "✅ Tabelas existem\n\n";
    
    // Verificar gestores registrados
    echo "👥 Verificando gestores...\n";
    $stmt = $pdo->query("SELECT user_id, device_id, device_name FROM fcm_tokens WHERE user_type = 'gestor' AND ativo = TRUE");
    $gestores = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($gestores)) {
        echo "❌ Nenhum gestor encontrado\n";
        echo "💡 Configure o app como 'gestor' primeiro\n";
        echo "🔧 Verifique se o app está logado\n";
        exit;
    }
    
    echo "✅ " . count($gestores) . " gestores encontrados:\n";
    foreach ($gestores as $gestor) {
        echo "   - ID: {$gestor['user_id']}\n";
        echo "   - Device: {$gestor['device_id']}\n";
        echo "   - Nome: {$gestor['device_name']}\n\n";
    }
    
    // Criar uma notificação de teste
    echo "📨 Criando notificação de teste...\n";
    
    $gestorId = $gestores[0]['user_id'];
    $titulo = "🧪 Teste de Notificação";
    $mensagem = "Esta é uma notificação de teste para verificar se o sistema está funcionando!";
    $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([$gestorId, $titulo, $mensagem, $tipo, $solicitacaoId]);
    $notificacaoId = $pdo->lastInsertId();
    
    echo "✅ Notificação de teste criada: ID=$notificacaoId\n";
    echo "   - Título: $titulo\n";
    echo "   - Mensagem: $mensagem\n";
    echo "   - Gestor: $gestorId\n\n";
    
    // Verificar notificações não lidas
    echo "📊 Verificando notificações não lidas...\n";
    $stmt = $pdo->prepare("SELECT COUNT(*) as total FROM notificacoes_push WHERE user_id = ? AND lida = FALSE");
    $stmt->execute([$gestorId]);
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    $totalNaoLidas = $result['total'];
    
    echo "📬 Notificações não lidas para gestor $gestorId: $totalNaoLidas\n\n";
    
    // Verificar últimas notificações
    echo "📋 Últimas notificações:\n";
    $stmt = $pdo->prepare("
        SELECT id, titulo, mensagem, tipo, lida, data_envio 
        FROM notificacoes_push 
        WHERE user_id = ? 
        ORDER BY data_envio DESC 
        LIMIT 5
    ");
    $stmt->execute([$gestorId]);
    $notificacoes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    foreach ($notificacoes as $notif) {
        $status = $notif['lida'] ? "✅ Lida" : "📬 Não lida";
        echo "   - ID: {$notif['id']} | {$status}\n";
        echo "     Título: {$notif['titulo']}\n";
        echo "     Mensagem: {$notif['mensagem']}\n";
        echo "     Data: {$notif['data_envio']}\n\n";
    }
    
    echo "📱 PRÓXIMOS PASSOS:\n";
    echo "===================\n";
    echo "1. 📱 Abra o app no celular\n";
    echo "2. 🔄 Puxe para baixo na tela para atualizar\n";
    echo "3. 🔍 Verifique se a notificação aparece\n";
    echo "4. 📋 Verifique os logs do app (Logcat)\n";
    echo "5. ⚙️ Verifique as configurações de notificação do Android\n\n";
    
    echo "🔧 CONFIGURAÇÕES IMPORTANTES:\n";
    echo "============================\n";
    echo "• Notificações do app devem estar habilitadas\n";
    echo "• App deve ter permissão para mostrar notificações\n";
    echo "• App deve estar configurado como 'gestor'\n";
    echo "• Serviço de background deve estar ativo\n\n";
    
    echo "🔗 URL para verificar notificações:\n";
    echo "https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/api/gestao/notificacoes.php?acao=nao_lidas&user_id=$gestorId\n\n";
    
    echo "✅ Teste 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";
}
?> 
