What's Changed
- Уведомления в канал об: 🎯 Активация триала 💎 Покупка подписки 🔄 Конверсия из триала в платную ⏰ Продление подписки 💰 Пополнение баланса by @Fr1ngg in #30
Full Changelog: v2.2.1...v2.2.2
📢 Обновление: Система уведомлений администраторов
🆕 Новые возможности
Уведомления в канал/топик
Добавлена система автоматических уведомлений администраторов о всех важных событиях в боте. Теперь администраторы получают мгновенные уведомления в приватный канал или топик группы.
Типы уведомлений:
- 🎯 Активация триала - новые пользователи и их параметры
- 💎 Покупка подписки - новые покупки с полной детализацией
- 🔄 Конверсия из триала - пользователи, перешедшие на платную подписку
- ⏰ Продление подписки - продления существующих подписок
- 💰 Пополнение баланса - все пополнения через любые способы оплаты
Информация в уведомлениях:
- Полные данные пользователя (имя, ID, username)
- Параметры подписки (период, трафик, устройства, серверы)
- Финансовая информация (сумма, способ оплаты, баланс)
- Реферальная информация
- Временные метки
🛠️ Настройка
1. Переменные окружения
Добавьте в файл .env:
# Уведомления администраторов
ADMIN_NOTIFICATIONS_ENABLED=true
ADMIN_NOTIFICATIONS_CHAT_ID=-1001234567890 # ID канала/группы
ADMIN_NOTIFICATIONS_TOPIC_ID=123 # ID топика (опционально)2. Создание канала
- Создайте приватный канал или группу для уведомлений
- Добавьте бота как администратора с правами:
- Отправка сообщений
- Использование встроенного режима (если нужно)
- Получите ID канала:
- Отправьте любое сообщение в канал
- Перешлите его боту @userinfobot
- Скопируйте Chat ID (например:
-1001234567890)
3. Настройка топиков (опционально)
Если используете супергруппу с топиками:
- Включите топики в настройках группы
- Создайте топик для уведомлений (например, "Уведомления")
- Получите ID топика:
- Откройте топик в веб-версии Telegram
- Скопируйте число после последнего
/в URL - Или используйте бота для получения message_thread_id
4. Обновление кода
Новые файлы:
app/services/admin_notification_service.py- основной сервис уведомлений
Обновленные файлы:
app/config.py- добавлены настройки уведомленийapp/handlers/subscription.py- интеграция уведомлений при покупкахapp/services/payment_service.py- уведомления при пополненияхapp/database/crud/transaction.py- новая функция получения транзакций
📝 Примеры уведомлений
Активация триала
🎯 АКТИВАЦИЯ ТРИАЛА
👤 Пользователь: Иван Петров
🆔 Telegram ID: 123456789
📱 Username: @ivan_petrov
👥 Статус: 🆕 Новый
⏰ Параметры триала:
📅 Период: 3 дня
📊 Трафик: 10 ГБ
📱 Устройства: 2
🌐 Сервер: 🇩🇪 Германия
📆 Действует до: 09.09.2025 15:30
🔗 Реферер: Нет
⏰ 06.09.2025 15:30:15
Покупка подписки
💎 ПОКУПКА ПОДПИСКИ
👤 Пользователь: Иван Петров
🆔 Telegram ID: 123456789
📱 Username: @ivan_petrov
👥 Статус: 🆕 Первая покупка
💰 Платеж:
💵 Сумма: 299.00 ₽
💳 Способ: ⭐ Telegram Stars
🆔 ID транзакции: 15
📱 Параметры подписки:
📅 Период: 30 дней
📊 Трафик: Безлимит
📱 Устройства: 3
🌐 Серверы: 2 шт. (🇩🇪 Германия, 🇺🇸 США)
📆 Действует до: 06.10.2025 15:30
💰 Баланс после покупки: 150.50 ₽
🔗 Реферер: ID 987654321
⏰ 06.09.2025 15:30:45
Пополнение баланса
💰 ПОПОЛНЕНИЕ БАЛАНСА
👤 Пользователь: Иван Петров
🆔 Telegram ID: 123456789
📱 Username: @ivan_petrov
💳 Статус: 🆕 Первое пополнение
💰 Детали пополнения:
💵 Сумма: 500.00 ₽
💳 Способ: 💳 YooKassa (карта)
🆔 ID транзакции: 12
💰 Баланс:
📉 Было: 50.00 ₽
📈 Стало: 550.00 ₽
➕ Изменение: +500.00 ₽
🔗 Реферер: Нет
📱 Подписка: ✅ Активна (до 15.10)
⏰ 06.09.2025 15:25:30
🔧 Техническая информация
Архитектура
- Асинхронная отправка - уведомления не блокируют основной поток
- Обработка ошибок - система продолжает работать при проблемах с отправкой
- Логирование - все события записываются в логи для отладки
Безопасность
- Уведомления отправляются только в настроенный приватный канал
- Конфиденциальные данные (пароли, токены) не передаются
- Поддержка топиков для организации уведомлений
Производительность
- Минимальное влияние на скорость работы бота
- Уведомления обрабатываются в фоновом режиме
- Автоматическое восстановление при временных сбоях
🚀 Преимущества
- Мгновенная аналитика - видите активность в реальном времени
- Контроль конверсий - отслеживайте переход с триала на платные подписки
- Финансовый мониторинг - все платежи и пополнения под контролем
- Реферальная аналитика - отслеживайте эффективность реферальной программы
- Удобство - вся информация в одном месте без необходимости заходить в админку
⚠️ Важные моменты
- Приватность канала - убедитесь, что канал приватный и доступ имеют только администраторы
- Права бота - бот должен иметь права на отправку сообщений в канал
- ID канала - для приватных каналов используйте формат
-100XXXXXXXXX
🔍 Отладка
Если уведомления не приходят:
- Проверьте правильность ID канала в
.env - Убедитесь, что бот добавлен в канал как администратор!
- Проверьте логи бота на ошибки отправки
Исправление ошибки удаления пользователей после обновления v2.2.1
Исправленные ошибки
Критическая ошибка foreign key при удалении пользователей
- Проблема: Ошибка
subscription_conversions_user_id_fkeyпри удалении пользователя через админку - Решение: Добавлено удаление записей из таблицы
subscription_conversionsв процесс удаления пользователя - Файл:
app/services/user_service.py
Что изменилось
- Добавлен блок удаления записей конверсий подписок в метод
delete_user_account - Улучшено логирование процесса удаления
Теперь удаление пользователей через админ-панель работает корректно без ошибок foreign key.