<?php
/**
 * Teste do Sistema de Notificações em Background
 * Simula novas solicitações para testar notificações
 */

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

use ControleFrotas\Utils\Logger;

echo "🧪 TESTE DE NOTIFICAÇÕES EM BACKGROUND\n";
echo "========================================\n\n";

echo "🎯 Este teste simula novas solicitações para verificar se:\n";
echo "   ✅ App mostra notificações mesmo fechado\n";
echo "   ✅ Serviço de background está funcionando\n";
echo "   ✅ Notificações aparecem como popup\n\n";

// Verificar se há gestores configurados
echo "👥 Verificando gestores...\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";
} else {
    echo "❌ Nenhum gestor encontrado\n";
    echo "💡 Configure o app como 'gestor' primeiro\n";
    exit;
}

// Criar solicitação de teste
echo "\n📝 Criando solicitação de teste...\n";

$tecnicoId = 1; // ID do técnico de teste
$clienteId = 1; // ID do cliente de teste
$motivo = "Teste de notificação em background - " . date('H:i:s');
$dataSolicitacao = date('Y-m-d H:i:s');

try {
    $sql = "INSERT INTO solicitacoes_viagem (
        tecnico_id, cliente_id, motivo, data_solicitacao, status
    ) VALUES (?, ?, ?, ?, 'pendente')";
    
    $params = [$tecnicoId, $clienteId, $motivo, $dataSolicitacao];
    $solicitacaoId = Database::insert($sql, $params);
    
    if ($solicitacaoId) {
        echo "✅ Solicitação criada com ID: $solicitacaoId\n";
        echo "📋 Motivo: $motivo\n";
        echo "⏰ Data: $dataSolicitacao\n";
        
        // Buscar dados da solicitação
        $solicitacao = Database::queryOne("
            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.id = ?
        ", [$solicitacaoId]);
        
        if ($solicitacao) {
            echo "\n📊 Dados da solicitação:\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🎯 PRÓXIMOS PASSOS:\n";
            echo "==================\n";
            echo "1. 📱 Abra o app no celular\n";
            echo "2. 🔧 Configure como 'gestor' se ainda não fez\n";
            echo "3. 🔄 Feche o app completamente\n";
            echo "4. ⏰ Aguarde 30 segundos\n";
            echo "5. 📢 Verifique se a notificação aparece\n";
            echo "6. 📱 Toque na notificação para abrir o app\n\n";
            
            echo "💡 DICAS:\n";
            echo "=========\n";
            echo "• O app deve mostrar notificação mesmo fechado\n";
            echo "• A notificação deve aparecer como popup\n";
            echo "• Ao tocar na notificação, deve abrir o app\n";
            echo "• O serviço de background deve estar ativo\n\n";
            
            echo "🔧 VERIFICAÇÕES:\n";
            echo "================\n";
            echo "• Verifique se o app tem permissão para notificações\n";
            echo "• Verifique se o serviço de background está rodando\n";
            echo "• Verifique os logs do app para debug\n";
            echo "• Teste com o app aberto e fechado\n\n";
            
        } else {
            echo "❌ Erro ao buscar dados da solicitação\n";
        }
        
    } else {
        echo "❌ Erro ao criar solicitação\n";
    }
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}

echo "✅ Teste concluído!\n";
echo "📱 Verifique o app para ver a notificação\n";
?> 
