github BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot v2.2.0

latest releases: v3.17.0, v3.16.3, v3.16.2...
5 months ago

What's Changed

Full Changelog: v2.1.9...v2.2.0

🧮 Обновление системы ценообразования подписок

🔄 Основные изменения

Переработана логика расчета цен с учетом периодичности платежей:

  • Новая формула расчета: Базовая цена за период + (Дополнительные услуги × Количество месяцев в периоде)
  • Для новых подписок: цена рассчитывается исходя из выбранного периода (30/90/180 дней = 1/3/6 месяцев)
  • Для продления: стоимость текущей конфигурации умножается на количество месяцев
  • Для дополнений: цена за месяц умножается на оставшиеся месяцы подписки

📊 Детали реализации

Добавлены новые утилиты для работы с периодами:

  • app/utils/pricing_utils.py - функции расчета месяцев, валидации цен, форматирования периодов
  • calculate_months_from_days() - конвертация дней в месяцы
  • get_remaining_months() - расчет оставшихся месяцев подписки
  • calculate_prorated_price() - пропорциональный расчет цены

Обновлены сервисы:

  • subscription_service.py - новые методы расчета с учетом месяцев
  • subscription.py (CRUD) - функции для работы с ценами за период

Исправлены обработчики:

  • confirm_purchase() - корректный расчет цены новой подписки
  • confirm_extend_subscription() - расчет продления с учетом всех услуг
  • confirm_add_traffic/devices() - доплата за оставшиеся месяцы
  • apply_countries_changes() - добавление серверов с правильной ценой

Улучшены интерфейсы:

  • Клавиатуры добавления услуг теперь показывают финальную цену за период
  • Детализация расчетов в сводке заказа с разбивкой по месяцам
  • Корректное отображение цен серверов при управлении странами

🛠 Технические улучшения

  • Добавлена валидация расчетов для предотвращения ошибок
  • Улучшено логирование всех ценовых операций
  • Исправлены проблемы с округлением при отображении цен

💡 Принцип работы

Пример расчета для подписки на 180 дней:

  • Базовый период: 400₽
  • Трафик безлимит: 200₽/мес × 6 мес = 1200₽
  • 4 устройства: 50₽/мес × 6 мес = 300₽
  • 2 сервера: 100₽/мес × 6 мес = 1200₽
  • Итого: 3100₽

Система теперь корректно работает с любыми периодами подписки и обеспечивает прозрачность ценообразования для пользователей.

Don't miss a new remnawave-bedolaga-telegram-bot release

NewReleases is sending notifications on new releases.