🆕 Новые возможности
📦 Докупка трафика для тарифных подписок
Полноценная система докупки дополнительного трафика в MiniApp!
Функционал:
- ✅ Пакеты трафика — 50 / 100 / 200 / 500 ГБ
- ✅ Скидки промогрупп — автоматический расчёт
traffic_discount_percent - ✅ Визуализация скидок — зачёркнутая цена + бейдж скидки
- ✅ Валидация — проверка активной подписки и баланса
- ✅ Логирование — запись в историю транзакций
Новый эндпоинт:
| Метод | Путь | Описание |
|---|---|---|
| POST | /miniapp/tariff/traffic-topup | Покупка доп. трафика |
📦 Докупка трафика для тарифных подписок
Полноценная система докупки дополнительного трафика в MiniApp!
Функционал:
- ✅ Пакеты трафика
- ✅ Скидки промогрупп — автоматический расчёт
traffic_discount_percent - ✅ Визуализация скидок — зачёркнутая цена + бейдж скидки
- ✅ Валидация — проверка активной подписки и баланса
- ✅ Логирование — запись в историю транзакций
Новый эндпоинт:
| Метод | Путь | Описание |
|---|---|---|
| POST | /miniapp/tariff/traffic-topup
| Покупка доп. трафика |
Новые схемы:
| Схема | Описание |
|---|---|
MiniAppTrafficTopupPackage
| Пакет трафика (gb, price, discount) |
MiniAppTrafficTopupRequest
| Запрос на покупку |
MiniAppTrafficTopupResponse
| Ответ с новым балансом |
🏷️ Отображение скидок промогрупп для тарифов
Полная интеграция системы скидок в интерфейс покупки и продления!
Баннер промогруппы:
- ✅ Информативность — название группы и доступные скидки
- ✅ Визуальный акцент — анимированный glow-эффект
- ✅ Позиционирование — над списком тарифов
Карточки периодов:
- ✅ Бейджи скидок —
-20%на периодах с активной скидкой - ✅ Двойная цена — зачёркнутая оригинальная + новая со скидкой
- ✅ Визуальное выделение — периоды со скидкой
Backend-расчёт:
- Получение
period_discountsиз промогруппы - Расчёт
original_price_kopeksиprice_kopeks - Заполнение
discount_percentдля каждого периода
⚡ Улучшения
🔄 Переработка логики смены тарифа
При смене тарифа устанавливается выбранный юзером трафик, вместо переноса дней со старого тарифа
🎨 UI/UX
- ✅ Компактные кнопки — сокращены тексты для мобильных устройств
| Ключ | Было | Стало |
|---|---|---|
SUBSCRIPTION_EXTEND
| Продлить подписку | Продлить |
SUBSCRIPTION_SETTINGS_BUTTON
| Настройки подписки | Настройки |
CHANGE_TARIFF_BUTTON
| Сменить тариф | Тариф |
🐛 Исправления
- ✅ Промогруппа пользователя — заменён
user.promo_groupнаuser.get_primary_promo_group()во всех эндпоинтах - ✅ Сериализация period_discounts — изменён тип
Dict[int, int]→Dict[str, int]для корректной JSON-сериализации
📁 Затронутые файлы
| Файл | Изменения |
|---|---|
app/webapi/routes/miniapp.py
| Эндпоинты тарифов, покупки, докупки трафика |
app/webapi/schemas/miniapp.py
| Новые схемы TrafficTopup*, исправление типов |
miniapp/index.html
| UI докупки трафика, баннер промогруппы, бейджи |
app/localization/locales/ru.json
| Сокращённые тексты кнопок |
app/localization/locales/en.json
| Сокращённые тексты кнопок |
🔄 Обновление
Через Git:
cd /root/remnawave-bedolaga-telegram-bot
git pull origin main
make reloadС логами:
make reload-follow📇 Доступные команды
make help # Показать все команды
make up # Поднять контейнеры (detached)
make up-follow # Поднять контейнеры с логами
make down # Остановить и удалить контейнеры
make reload # Перезапустить контейнеры (detached)
make reload-follow # Перезапустить контейнеры с логами
make test # Запустить тесты🔗 Ссылки
[Release](https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot/releases/tag/v2.9.6) | [Full Changelog](v2.9.5...v2.9.6)
Или через веб-админку [bedolagam.ru](https://bedolagam.ru) автоматически