<?php
/**
 * Verificar Status do Sistema de Notificações em Background
 */

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

use ControleFrotas\Utils\Logger;

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

// Verificar tabelas
echo "📋 VERIFICAÇÃO DE TABELAS:\n";
echo "==========================\n";

$tabelas = Database::queryAll("SHOW TABLES LIKE 'solicitacoes_viagem'");
if ($tabelas) {
    echo "✅ Tabela solicitacoes_viagem existe\n";
} else {
    echo "❌ Tabela solicitacoes_viagem não existe\n";
}

$tabelas = Database::queryAll("SHOW TABLES LIKE 'fcm_tokens'");
if ($tabelas) {
    echo "✅ Tabela fcm_tokens existe\n";
} else {
    echo "❌ Tabela fcm_tokens não existe\n";
}

$tabelas = Database::queryAll("SHOW TABLES LIKE 'notificacoes_push'");
if ($tabelas) {
    echo "✅ Tabela notificacoes_push existe\n";
} else {
    echo "❌ Tabela notificacoes_push não existe\n";
}

// Verificar gestores
echo "\n👥 VERIFICAÇÃO DE GESTORES:\n";
echo "===========================\n";

$gestores = Database::queryAll("SELECT user_id FROM fcm_tokens WHERE user_type = 'gestor' AND ativo = TRUE");
if ($gestores) {
    echo "✅ " . count($gestores) . " gestores encontrados\n";
    foreach ($gestores as $gestor) {
        echo "   👤 User ID: {$gestor['user_id']}\n";
    }
} else {
    echo "❌ Nenhum gestor encontrado\n";
    echo "💡 Configure o app como 'gestor' primeiro\n";
}

// Verificar solicitações pendentes
echo "\n📝 VERIFICAÇÃO DE SOLICITAÇÕES:\n";
echo "===============================\n";

$solicitacoesPendentes = Database::queryAll("
    SELECT 
        s.id,
        s.motivo,
        s.data_solicitacao,
        s.status,
        t.nome as tecnico_nome,
        c.nome as cliente_nome
    FROM solicitacoes_viagem s
    JOIN tecnicos t ON s.tecnico_id = t.id
    JOIN clientes c ON s.cliente_id = c.id
    WHERE s.status = 'pendente'
    ORDER BY s.data_solicitacao DESC
    LIMIT 5
");

if ($solicitacoesPendentes) {
    echo "📨 " . count($solicitacoesPendentes) . " solicitações pendentes encontradas:\n";
    foreach ($solicitacoesPendentes as $solicitacao) {
        echo "   📋 ID: {$solicitacao['id']}\n";
        echo "   👤 Técnico: {$solicitacao['tecnico_nome']}\n";
        echo "   🏢 Cliente: {$solicitacao['cliente_nome']}\n";
        echo "   📝 Motivo: {$solicitacao['motivo']}\n";
        echo "   📅 Data: {$solicitacao['data_solicitacao']}\n";
        echo "   📊 Status: {$solicitacao['status']}\n";
        echo "   ---\n";
    }
} else {
    echo "📭 Nenhuma solicitação pendente encontrada\n";
}

// Verificar notificações
echo "\n📢 VERIFICAÇÃO DE NOTIFICAÇÕES:\n";
echo "===============================\n";

$notificacoes = Database::queryAll("SELECT COUNT(*) as total FROM notificacoes_push");
$totalNotificacoes = $notificacoes[0]['total'];
echo "📊 Total de notificações: $totalNotificacoes\n";

$naoLidas = Database::queryAll("SELECT COUNT(*) as total FROM notificacoes_push WHERE lida = FALSE");
$totalNaoLidas = $naoLidas[0]['total'];
echo "📬 Não lidas: $totalNaoLidas\n";

// Verificar últimas notificações
$ultimasNotificacoes = Database::queryAll("
    SELECT * FROM notificacoes_push 
    ORDER BY data_criacao DESC 
    LIMIT 3
");

if ($ultimasNotificacoes) {
    echo "\n📨 Últimas notificações:\n";
    foreach ($ultimasNotificacoes as $notificacao) {
        echo "   📋 ID: {$notificacao['id']}\n";
        echo "   📝 Título: {$notificacao['titulo']}\n";
        echo "   📄 Mensagem: {$notificacao['mensagem']}\n";
        echo "   📅 Data: {$notificacao['data_criacao']}\n";
        echo "   👁️ Lida: " . ($notificacao['lida'] ? 'Sim' : 'Não') . "\n";
        echo "   ---\n";
    }
}

echo "\n🎯 STATUS DO SISTEMA:\n";
echo "====================\n";

$status = [];
$status[] = "✅ Backend configurado";
$status[] = "✅ APIs funcionando";
$status[] = "✅ Banco de dados conectado";

if ($gestores) {
    $status[] = "✅ Gestores configurados";
} else {
    $status[] = "❌ Nenhum gestor configurado";
}

if ($solicitacoesPendentes) {
    $status[] = "✅ Solicitações pendentes disponíveis";
} else {
    $status[] = "📭 Nenhuma solicitação pendente";
}

foreach ($status as $item) {
    echo "   $item\n";
}

echo "\n💡 PRÓXIMOS PASSOS:\n";
echo "==================\n";
echo "1. 📱 Configure o app como 'gestor'\n";
echo "2. 🔄 Teste o serviço de background\n";
echo "3. 📢 Verifique se notificações aparecem\n";
echo "4. 🧪 Execute o teste de notificações\n";
echo "5. 📊 Monitore os logs do app\n\n";

echo "🔧 COMANDOS ÚTEIS:\n";
echo "==================\n";
echo "• php teste-notificacoes-background.php\n";
echo "• php sistema-notificacoes-local.php\n";
echo "• php verificar-status-background.php\n\n";

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