// Скрипт для тестирования VIP функционала require('dotenv').config(); const { Pool } = require('pg'); // Создаем пул соединений const pool = new Pool({ user: process.env.DB_USERNAME, host: process.env.DB_HOST, database: process.env.DB_NAME, password: process.env.DB_PASSWORD, port: parseInt(process.env.DB_PORT || '5432') }); async function testVipStatus() { try { console.log('Тестирование функционала VIP статуса...'); // Получаем список пользователей с информацией о premium статусе const users = await pool.query(` SELECT id, telegram_id, username, first_name, premium FROM users ORDER BY last_active_at DESC LIMIT 5 `); console.log('Список пользователей и их премиум статус:'); users.rows.forEach(user => { console.log(`ID: ${user.id.substr(0, 8)}... | Telegram ID: ${user.telegram_id} | Имя: ${user.first_name || user.username || 'Не указано'} | Premium: ${user.premium ? '✅' : '❌'}`); }); // Если premium у всех false, устанавливаем premium = true const nonPremiumUsers = users.rows.filter(user => !user.premium); if (nonPremiumUsers.length > 0) { console.log('\nОбнаружены пользователи без премиум статуса. Устанавливаем премиум...'); for (const user of nonPremiumUsers) { await pool.query(` UPDATE users SET premium = true WHERE id = $1 RETURNING id, telegram_id, premium `, [user.id]); console.log(`✅ Установлен премиум для пользователя ${user.first_name || user.username || user.telegram_id}`); } } else { console.log('\nВсе пользователи уже имеют премиум-статус!'); } // Проверяем результат const updatedUsers = await pool.query(` SELECT id, telegram_id, username, first_name, premium FROM users ORDER BY last_active_at DESC LIMIT 5 `); console.log('\nОбновленный список пользователей и их премиум статус:'); updatedUsers.rows.forEach(user => { console.log(`ID: ${user.id.substr(0, 8)}... | Telegram ID: ${user.telegram_id} | Имя: ${user.first_name || user.username || 'Не указано'} | Premium: ${user.premium ? '✅' : '❌'}`); }); console.log('\n✅ Тестирование VIP функционала завершено'); console.log('🔧 Проверьте доступность VIP поиска в боте через меню или команды'); } catch (error) { console.error('❌ Ошибка при тестировании VIP статуса:', error); } finally { await pool.end(); console.log('Соединение с базой данных закрыто'); } } // Запускаем тест testVipStatus();