<?php
/**
 * Registrar Dispositivo de Teste
 * Registra manualmente um dispositivo para testar 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 "📱 REGISTRO DE DISPOSITIVO DE TESTE\n";
    echo "===================================\n\n";
    
    // Verificar se a tabela existe
    $stmt = $pdo->query("SHOW TABLES LIKE 'fcm_tokens'");
    if ($stmt->rowCount() == 0) {
        echo "❌ Tabela fcm_tokens não existe\n";
        echo "💡 Execute: php criar-tabela-notificacoes.php\n";
        exit;
    }
    
    echo "✅ Tabela fcm_tokens existe\n\n";
    
    // Verificar gestores disponíveis
    echo "👥 Verificando gestores disponíveis...\n";
    $stmt = $pdo->query("SELECT id, nome, usuario, email FROM gestores WHERE status = 'ativo'");
    $gestores = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (empty($gestores)) {
        echo "❌ Nenhum gestor ativo encontrado\n";
        echo "💡 Crie um gestor primeiro\n";
        exit;
    }
    
    echo "✅ " . count($gestores) . " gestores encontrados:\n";
    foreach ($gestores as $gestor) {
        echo "   - ID: {$gestor['id']} | {$gestor['nome']} ({$gestor['usuario']})\n";
    }
    
    // Usar o primeiro gestor para teste
    $gestor = $gestores[0];
    $userId = $gestor['id'];
    $userName = $gestor['nome'];
    
    echo "\n📱 Registrando dispositivo de teste...\n";
    echo "   Gestor: $userName (ID: $userId)\n";
    
    // Dados do dispositivo de teste
    $deviceId = 'teste_' . time();
    $deviceName = 'Dispositivo de Teste';
    $token = 'teste_token_' . time();
    $userType = 'gestor';
    $platform = 'android';
    $appVersion = '1.0.0';
    
    // Verificar se já existe um registro para este gestor
    $stmt = $pdo->prepare("SELECT id FROM fcm_tokens WHERE user_id = ?");
    $stmt->execute([$userId]);
    $existing = $stmt->fetch();
    
    if ($existing) {
        echo "⚠️ Já existe um registro para este gestor\n";
        echo "🔄 Atualizando registro existente...\n";
        
        $stmt = $pdo->prepare("
            UPDATE fcm_tokens 
            SET token = ?, device_id = ?, device_name = ?, user_type = ?, 
                platform = ?, app_version = ?, ativo = TRUE, ultimo_uso = NOW()
            WHERE user_id = ?
        ");
        $stmt->execute([$token, $deviceId, $deviceName, $userType, $platform, $appVersion, $userId]);
        
        echo "✅ Registro atualizado com sucesso!\n";
    } else {
        echo "➕ Criando novo registro...\n";
        
        $stmt = $pdo->prepare("
            INSERT INTO fcm_tokens 
            (user_id, user_type, token, device_id, device_name, platform, app_version, ativo, created_at) 
            VALUES (?, ?, ?, ?, ?, ?, ?, TRUE, NOW())
        ");
        $stmt->execute([$userId, $userType, $token, $deviceId, $deviceName, $platform, $appVersion]);
        
        echo "✅ Registro criado com sucesso!\n";
    }
    
    // Verificar registros após inserção
    echo "\n📊 Verificando registros após inserção...\n";
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM fcm_tokens");
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    echo "   Total de registros: {$result['total']}\n";
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM fcm_tokens WHERE user_type = 'gestor'");
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    echo "   Gestores registrados: {$result['total']}\n";
    
    // Listar registros
    echo "\n📋 Registros na tabela:\n";
    $stmt = $pdo->query("SELECT user_id, user_type, device_name, ativo FROM fcm_tokens");
    $registros = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    foreach ($registros as $registro) {
        $status = $registro['ativo'] ? "✅ Ativo" : "❌ Inativo";
        echo "   - {$registro['user_id']} ({$registro['user_type']}) - {$registro['device_name']} - $status\n";
    }
    
    echo "\n🎯 PRÓXIMOS PASSOS:\n";
    echo "==================\n";
    echo "1. ✅ Dispositivo registrado\n";
    echo "2. 📱 Teste as notificações:\n";
    echo "   https://sistemas.pinheiroempresas.com.br/controlefrota/backend-php/teste-notificacao-app.php\n";
    echo "3. 📱 Abra o app e verifique se as notificações aparecem\n";
    echo "4. 🔄 Se não aparecer, verifique as configurações do app\n\n";
    
    echo "✅ Dispositivo de teste registrado com sucesso!\n";
    
} catch (PDOException $e) {
    echo "❌ ERRO DE CONEXÃO COM BANCO:\n";
    echo "=============================\n";
    echo "Erro: " . $e->getMessage() . "\n";
} catch (Exception $e) {
    echo "❌ ERRO GERAL:\n";
    echo "==============\n";
    echo "Erro: " . $e->getMessage() . "\n";
}
?> 
