<?php
/**
 * Teste de Notificações - Versão Simplificada
 * Cria uma solicitação de teste para verificar 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 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";
    $stmt = $pdo->query("SELECT user_id FROM fcm_tokens WHERE user_type = 'gestor' AND ativo = TRUE");
    $gestores = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if ($gestores) {
        echo "✅ " . count($gestores) . " gestores encontrados\n";
    } else {
        echo "❌ Nenhum gestor encontrado\n";
        echo "💡 Configure o app como 'gestor' primeiro\n";
        echo "📱 Abra o app e configure como 'Gestor' na tela de instalação\n\n";
        echo "🔄 Após configurar o app, execute este teste novamente\n";
        exit;
    }
    
    // Verificar se há técnicos e clientes
    echo "\n👤 Verificando técnicos...\n";
    $stmt = $pdo->query("SELECT id, nome FROM tecnicos LIMIT 1");
    $tecnicos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (!$tecnicos) {
        echo "❌ Nenhum técnico encontrado\n";
        echo "💡 Crie pelo menos um técnico no sistema\n";
        exit;
    }
    
    echo "✅ " . count($tecnicos) . " técnico(s) encontrado(s)\n";
    
    echo "\n🏢 Verificando clientes...\n";
    $stmt = $pdo->query("SELECT id, nome FROM clientes LIMIT 1");
    $clientes = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (!$clientes) {
        echo "❌ Nenhum cliente encontrado\n";
        echo "💡 Crie pelo menos um cliente no sistema\n";
        exit;
    }
    
    echo "✅ " . count($clientes) . " cliente(s) encontrado(s)\n";
    
    // Criar solicitação de teste
    echo "\n📝 Criando solicitação de teste...\n";
    
    $tecnicoId = $tecnicos[0]['id'];
    $clienteId = $clientes[0]['id'];
    $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')";
        
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$tecnicoId, $clienteId, $motivo, $dataSolicitacao]);
        $solicitacaoId = $pdo->lastInsertId();
        
        if ($solicitacaoId) {
            echo "✅ Solicitação criada com ID: $solicitacaoId\n";
            echo "📋 Motivo: $motivo\n";
            echo "⏰ Data: $dataSolicitacao\n";
            
            // Buscar dados da solicitação
            $sql = "
                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 = ?
            ";
            
            $stmt = $pdo->prepare($sql);
            $stmt->execute([$solicitacaoId]);
            $solicitacao = $stmt->fetch(PDO::FETCH_ASSOC);
            
            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 ao criar solicitação: " . $e->getMessage() . "\n";
    }
    
    echo "✅ Teste concluído!\n";
    echo "📱 Verifique o app para ver a notificação\n";
    
} catch (PDOException $e) {
    echo "❌ ERRO DE CONEXÃO COM BANCO:\n";
    echo "=============================\n";
    echo "Erro: " . $e->getMessage() . "\n";
    echo "\n💡 Verifique:\n";
    echo "• Se o banco de dados está rodando\n";
    echo "• Se as credenciais estão corretas\n";
    echo "• Se o banco 'pinheir3_controle_frotasV1.1' existe\n";
} catch (Exception $e) {
    echo "❌ ERRO GERAL:\n";
    echo "==============\n";
    echo "Erro: " . $e->getMessage() . "\n";
}
?> 
