<?php
/**
 * Script para simular o registro de token que o app deveria fazer
 * Acesse: https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/simular-registro-app.php
 */

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

echo "<h1>📱 SIMULAR REGISTRO DO APP</h1>";
echo "<hr>";

// Simular dados que o app enviaria
$appData = [
    'user_id' => 'admin',
    'user_type' => 'gestor',
    'token' => 'fcm_token_real_' . time() . '_' . rand(1000, 9999),
    'device_id' => 'android_device_' . time(),
    'device_name' => 'Samsung Galaxy S21 (App Real)',
    'app_version' => '1.0.0',
    'platform' => 'android'
];

echo "<h2>📋 Dados que o app deveria enviar:</h2>";
echo "<ul>";
foreach ($appData as $key => $value) {
    echo "<li><strong>$key:</strong> $value</li>";
}
echo "</ul>";

echo "<h2>🔄 Simulando registro...</h2>";

try {
    // Verificar se já existe um registro para este usuário
    $existing = Database::queryOne(
        "SELECT id FROM fcm_tokens WHERE user_id = ?",
        [$appData['user_id']]
    );
    
    if ($existing) {
        echo "<p>🔄 Atualizando registro existente...</p>";
        
        $sql = "UPDATE fcm_tokens SET 
                token = ?, 
                user_type = ?, 
                device_id = ?, 
                device_name = ?, 
                app_version = ?, 
                platform = ?, 
                ativo = TRUE, 
                ultimo_uso = NOW() 
                WHERE user_id = ?";
        
        Database::execute($sql, [
            $appData['token'],
            $appData['user_type'],
            $appData['device_id'],
            $appData['device_name'],
            $appData['app_version'],
            $appData['platform'],
            $appData['user_id']
        ]);
        
        echo "<p style='color: green;'>✅ Registro atualizado com sucesso!</p>";
    } else {
        echo "<p>➕ Criando novo registro...</p>";
        
        $sql = "INSERT INTO fcm_tokens 
                (user_id, user_type, token, device_id, device_name, app_version, platform, ativo) 
                VALUES (?, ?, ?, ?, ?, ?, ?, TRUE)";
        
        Database::execute($sql, [
            $appData['user_id'],
            $appData['user_type'],
            $appData['token'],
            $appData['device_id'],
            $appData['device_name'],
            $appData['app_version'],
            $appData['platform']
        ]);
        
        echo "<p style='color: green;'>✅ Registro criado com sucesso!</p>";
    }
    
    // Verificar registros após inserção
    echo "<h2>📊 Verificando registros após inserção...</h2>";
    $total = Database::queryOne("SELECT COUNT(*) as total FROM fcm_tokens")['total'];
    echo "<p><strong>Total de registros:</strong> $total</p>";
    
    $gestores = Database::queryOne("SELECT COUNT(*) as total FROM fcm_tokens WHERE user_type = 'gestor'")['total'];
    echo "<p><strong>Gestores registrados:</strong> $gestores</p>";
    
    $ativos = Database::queryOne("SELECT COUNT(*) as total FROM fcm_tokens WHERE ativo = TRUE")['total'];
    echo "<p><strong>Tokens ativos:</strong> $ativos</p>";
    
    // Listar registros
    echo "<h2>📋 Registros na tabela:</h2>";
    $registros = Database::queryAll("SELECT * FROM fcm_tokens ORDER BY created_at DESC");
    
    echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
    echo "<tr style='background-color: #f0f0f0;'>";
    echo "<th>ID</th><th>User ID</th><th>User Type</th><th>Device ID</th><th>Token</th><th>Ativo</th><th>Criado</th>";
    echo "</tr>";
    
    foreach ($registros as $registro) {
        $ativo = $registro['ativo'] ? 'Sim' : 'Não';
        $token = substr($registro['token'], 0, 30) . "...";
        
        echo "<tr>";
        echo "<td>{$registro['id']}</td>";
        echo "<td>{$registro['user_id']}</td>";
        echo "<td>{$registro['user_type']}</td>";
        echo "<td>{$registro['device_id']}</td>";
        echo "<td>$token</td>";
        echo "<td>$ativo</td>";
        echo "<td>{$registro['created_at']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    echo "<h2 style='color: green;'>✅ Simulação concluída com sucesso!</h2>";
    echo "<p>💡 Agora você pode testar o envio de notificações</p>";
    
    // Link para testar notificação
    echo "<p><a href='teste-notificacao-push-web.php' style='background-color: #4CAF50; color: white; padding: 10px 20px; text-decoration: none; border-radius: 5px;'>🧪 Testar Notificação Push</a></p>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro ao simular registro: " . $e->getMessage() . "</p>";
    echo "<pre>" . $e->getTraceAsString() . "</pre>";
}

echo "<h2>🔧 Próximos passos:</h2>";
echo "<ol>";
echo "<li><strong>Execute este script</strong> para simular o registro do app</li>";
echo "<li><strong>Teste o envio de notificações</strong> usando o link acima</li>";
echo "<li><strong>Verifique se a notificação aparece no app</strong></li>";
echo "<li><strong>Se funcionar, o problema é que o app não está registrando automaticamente</strong></li>";
echo "</ol>";
?> 
