What's Changed
- Немного юзерфрендли by @yazhog in #25
- Dev by @Fr1ngg in #26
- Dev by @Fr1ngg in #27
- Dev by @Fr1ngg in #28
- Dev by @Fr1ngg in #29
New Contributors
Full Changelog: v2.2.0...v2.2.1
‼️ Обновление реферальной системы
🛡️ Защита от абуза
- Переработана реферальная система для предотвращения мошенничества
- Бонусы теперь выдаются только при реальном пополнении баланса (от 100₽)
- Убраны мгновенные награды при регистрации по реферальной ссылке
🎁 Новая логика реферальных наград
- При первом пополнении ≥100₽:
- Новый пользователь получает 100₽ бонуса
- Пригласивший получает 100₽ бонуса
- При последующих пополнениях: пригласивший получает 25% комиссии
- Добавлена защита от повторного получения бонусов
🔧 Технические изменения
- Добавлена колонка
has_made_first_topupв таблицу пользователей - Обновлена логика обработки платежей через Stars и YooKassa
- Улучшено логирование реферальных операций
- Добавлены новые настройки в конфигурацию
📋 Миграция базы данных
- Автоматическая миграция для существующих пользователей
- Совместимость с SQLite, PostgreSQL и MySQL
- Обновление статуса пользователей с историей пополнений
⚙️ Настройки
Добавлены новые параметры конфигурации:
REFERRAL_MINIMUM_TOPUP_KOPEKS- минимальная сумма для активации бонусовREFERRAL_FIRST_TOPUP_BONUS_KOPEKS- бонус новому пользователюREFERRAL_INVITER_BONUS_KOPEKS- бонус пригласившемуREFERRAL_COMMISSION_PERCENT- процент комиссии с пополнений
💬 Реферальная система - Уведомления для юзеров + Улучшенная статистика рефералов
✨ Новые функции
- Уведомления для рефералов: автоматические сообщения при переходе по ссылке, первом пополнении и получении комиссий
- Детальная статистика: количество приглашенных, активных рефералов, конверсия и доходы по периодам
- Список рефералов: просмотр всех приглашенных пользователей с пагинацией
- Аналитика доходов: разбивка по типам начислений и топ самых прибыльных рефералов
🔧 Исправления
- Исправлена некорректная статистика в меню рефералов
📊 Улучшения
- Обновлена логика начисления бонусов и комиссий
- Улучшена производительность запросов статистики
- Добавлена фильтрация записей с нулевой суммой
- Расширена клавиатура рефералов новыми функциями
🛠 Техническое
- Добавлены новые CRUD операции для реферальной системы
- Обновлены сервисы платежей для поддержки уведомлений
- Улучшена обработка ошибок в реферальных операциях
- Добавлена поддержка передачи бота в реферальные функции
⚙️ Настройки
Добавлены новые параметры конфигурации:
# Уведомления
REFERRAL_NOTIFICATIONS_ENABLED=true - Включение/выклюение уведомлений реферальных
REFERRAL_NOTIFICATION_RETRY_ATTEMPTS=3
⚙️ Улучшение реферальной системы в админке
✨ Новые возможности
- Детальная реферальная статистика в профиле пользователя в админке
- Отображение информации о том, кто привел пользователя
- Список всех рефералов с указанием заработка с каждого
- Показ активных/неактивных рефералов
🔧 Исправления
- Исправлен подсчет активных рефералов (теперь корректно учитывается статус подписки)
- Оптимизированы SQL-запросы для работы с реферальной статистикой
📊 Улучшения админки
- В разделе "Статистика пользователя" добавлен блок "Реферальная программа"
- Показывается общий доход от рефералов и доход за месяц
- Топ-5 самых доходных рефералов с индикацией их активности
🛠️ Технические изменения
- Переработана функция
get_user_referral_stats()для корректной работы с БД - Добавлена функция
get_detailed_referral_stats()для получения детальной информации - Исправлено использование вычисляемых свойств в SQL-запросах
Исправления админ-панели
Исправления
- 🔧 Исправлена ошибка кнопки "Обновить" в статистике админ-панели
- 📊 Добавлено отображение времени последнего обновления статистики
- ⚡ Улучшена обработка ошибок при обновлении данных статистики
- 🔄 Исправлено дублирование callback-запросов в админ-панели
- Админ-панель: Исправлена неработающая кнопка "Статистика" в разделе управления промокодами
- Обработчики: Добавлен отсутствующий обработчик для общей статистики промокодов
- Навигация: Исправлен callback routing в админской клавиатуре промокодов
Технические детали
- Синхронизированы callback_data между клавиатурами и обработчиками
- Добавлен handler
show_general_promocode_statsдляadmin_promo_general_stats - Обновлена регистрация обработчиков в
register_handlers()
Затронутые модули: app/handlers/admin/promocodes.py, app/keyboards/admin.py