<?php
/**
 * Script para Verificar Status das Notificações Push
 */

require_once __DIR__ . '/config/bootstrap.php';

echo "🔍 VERIFICAÇÃO DO SISTEMA DE NOTIFICAÇÕES\n";
echo "==========================================\n\n";

// 1. Verificar configuração FCM
echo "1. 📱 Configuração FCM:\n";
$fcmKey = Database::queryOne("SELECT valor FROM configuracoes WHERE chave = 'fcm_server_key'");
if ($fcmKey) {
    echo "   ✅ Chave FCM configurada: " . substr($fcmKey['valor'], 0, 20) . "...\n";
} else {
    echo "   ❌ Chave FCM NÃO configurada\n";
    echo "   💡 Execute: INSERT INTO configuracoes (chave, valor) VALUES ('fcm_server_key', 'SUA_CHAVE_FCM');\n";
}
echo "\n";

// 2. Verificar tokens registrados
echo "2. 📱 Tokens FCM Registrados:\n";
$tokens = Database::queryAll("SELECT user_type, COUNT(*) as total FROM fcm_tokens WHERE ativo = TRUE GROUP BY user_type");
if ($tokens) {
    foreach ($tokens as $token) {
        echo "   📱 $token[user_type]: $token[total] tokens\n";
    }
} else {
    echo "   ❌ Nenhum token FCM registrado\n";
}
echo "\n";

// 3. Verificar gestores
echo "3. 👥 Gestores:\n";
$gestores = Database::queryAll("SELECT user_id, token FROM fcm_tokens WHERE user_type = 'gestor' AND ativo = TRUE");
if ($gestores) {
    foreach ($gestores as $gestor) {
        echo "   👤 Gestor: $gestor[user_id] - Token: " . substr($gestor['token'], 0, 20) . "...\n";
    }
} else {
    echo "   ❌ Nenhum gestor com token ativo\n";
}
echo "\n";

// 4. Verificar notificações enviadas
echo "4. 📨 Histórico de Notificações:\n";
$notificacoes = Database::queryAll("SELECT tipo, COUNT(*) as total, MAX(data_envio) as ultima FROM notificacoes_push GROUP BY tipo");
if ($notificacoes) {
    foreach ($notificacoes as $notif) {
        echo "   📨 $notif[tipo]: $notif[total] envios (último: $notif[ultima])\n";
    }
} else {
    echo "   ❌ Nenhuma notificação registrada\n";
}
echo "\n";

// 5. Verificar tabela de notificações
echo "5. 📋 Estrutura da Tabela notificacoes_push:\n";
try {
    $colunas = Database::queryAll("DESCRIBE notificacoes_push");
    foreach ($colunas as $coluna) {
        echo "   📋 $coluna[Field] - $coluna[Type]\n";
    }
} catch (Exception $e) {
    echo "   ❌ Tabela notificacoes_push não existe ou erro: " . $e->getMessage() . "\n";
}
echo "\n";

// 6. Verificar configurações do sistema
echo "6. ⚙️ Configurações do Sistema:\n";
$configs = Database::queryAll("SELECT chave, valor FROM configuracoes WHERE chave LIKE '%fcm%' OR chave LIKE '%notif%'");
if ($configs) {
    foreach ($configs as $config) {
        echo "   ⚙️ $config[chave]: " . substr($config['valor'], 0, 30) . "...\n";
    }
} else {
    echo "   ❌ Nenhuma configuração de notificação encontrada\n";
}
echo "\n";

echo "🎯 RECOMENDAÇÕES:\n";
echo "================\n";

if (!$fcmKey) {
    echo "❌ 1. Configure a chave FCM no banco de dados\n";
}

if (empty($gestores)) {
    echo "❌ 2. Registre tokens FCM dos gestores no app\n";
}

if (empty($notificacoes)) {
    echo "❌ 3. Teste o envio de notificações\n";
}

echo "\n💡 Para testar notificações:\n";
echo "   1. Abra o app no celular do gestor\n";
echo "   2. Configure o tipo de usuário como 'gestor'\n";
echo "   3. Execute: php teste-notificacao-gestor.php\n";
echo "   4. Verifique se a notificação aparece como popup\n";

echo "\n✅ Verificação concluída!\n";
?> 
