Commit Graph

310 Commits

Author SHA1 Message Date
gy9vin
54ffe3e126 feat(transactions): добавлен параметр payment_method для ручных пополнений баланса
Добавлена поддержка указания способа оплаты при пополнении баланса:

- add_user_balance(): новый параметр payment_method для передачи в транзакцию
- add_user_balance_by_id(): поддержка payment_method
- UserService: ручные пополнения админом пом
2025-12-26 08:53:08 +03:00
gy9vin
bf6dc3991a feat(trial): платный триал с выбором метода оплаты
Реализована система платного триала с гибким выбором способа оплаты:

- Автоопределение платности: если TRIAL_ACTIVATION_PRICE > 0, триал автоматически платный
- TRIAL_PAYMENT_ENABLED теперь опционален (для обратной совместимости)
- Добавлена функция create
2025-12-26 00:03:08 +03:00
Mikhail
fb9405cccd Merge branch 'BEDOLAGA-DEV:main' into main 2025-12-25 23:56:04 +03:00
gy9vin
0b34e90372 feat(migrations): добавлены миграции для модема, трафика и призов конкурсов
Добавлены миграции для новых функций:

- migrate_contest_templates_prize_columns(): миграция prize_days → prize_type + prize_value
- add_subscription_modem_enabled_column(): колонка modem_enabled в subscriptions
- add_subscription_purchased_traffic_column(): колонка purchased_traffic_gb в subscriptions
- Обновлён check
2025-12-25 23:29:02 +03:00
Egor
5e6baac07e Add files via upload 2025-12-25 21:05:49 +03:00
Egor
07ded3710c Add files via upload 2025-12-25 21:04:10 +03:00
gy9vin
21f34a9b08 fix(contests): блокировка повторных ответов в текстовых играх
- Создание попытки сразу при показе вопроса (cipher/emoji/anagram)
- Проверка attempt.answer is not None для блокировки повторного ответа
- Обновление существующей попытки вместо создания новой
- Добавлена функция update_attempt() в CRUD
2025-12-25 15:00:30 +03:00
gy9vin
0538d0e337 feat(traffic): улучшение системы докупки и сброса трафика
- Добавлен ENV переключатель TRAFFIC_TOPUP_ENABLED для вкл/выкл докупки
- Добавлена отдельная конфигурация пакетов TRAFFIC_TOPUP_PACKAGES_CONFIG
- Добавлено поле purchased_traffic_gb для отслеживания докупленного трафика
- Добавлены режимы расчета цены сброса (period/traffic/traffic_with_purchased)
- Исправлен абьюз: цена сброса теперь учитывает докупленный трафик
- Сброс purchased_traffic_gb при продлении/покупке подписки
- UX: меню сброса теперь показывает цену и баланс вместо alert
- UX: кнопка пополнения если не хватает средств на сброс
- Добавлена миграция для нового поля purchased_traffic_gb
- Добавлена локализация TRAFFIC_TOPUP_DISABLED (ru/en/ua/zh)
2025-12-25 14:48:24 +03:00
gy9vin
90c3df6331 Добавлен функционал подключения модема к подписке
Изменения:
- Добавлены настройки модема в .env.example и config.py (MODEM_ENABLED, MODEM_PRICE_PER_MONTH, MODEM_PERIOD_DISCOUNTS)
- Добавлено поле modem_enabled в модель Subscription
- Реализован модуль handlers/subscription/modem.py с обработчиками подключения/отключения модема
- Добавлено управ
2025-12-25 14:26:15 +03:00
Mikhail
0ddf24125b Merge branch 'BEDOLAGA-DEV:main' into main 2025-12-24 16:17:29 +03:00
Egor
dd87b4d408 Update database.py 2025-12-24 14:44:02 +03:00
gy9vin
b3cdd3c03a Расширение функционала конкурсов: разнообразие наград, напоминания, многоязычность
Изменения:
- ContestTemplate: prize_days заменен на prize_type и prize_value для поддержки разных типов наград (days, balance, custom)
- _award_prize: обновлена логика выдачи призов для всех типов наград
- DEFAULT_TEMPLATES: обновлены для использования prize_type/prize_value
- upsert_template: обновлена сигнатура для новых полей
- _announce_round_start: добавлена локализация и напоминания о конкурсах
- handle_text_answer: исправлена гонка условий с атомарным инкрементом победителей
- Локализация: добавлены ключи CONTEST_START_ANNOUNCEMENT, CONTEST_PRIZE, DAYS, CONTEST_WINNERS, CONTEST_ATTEMPTS, CONTEST_ELIGIBILITY, REMINDER, CONTEST_REMINDER_TEXT в ru.json и en.json
- API схемы: обновлены ContestTemplateResponse и ContestTemplateUpdateRequest

Требуется миграция БД для новых колонок prize_type и prize_value.
2025-12-23 19:15:40 +03:00
Egor
dc428baa6a Update subscription.py 2025-12-23 11:53:52 +03:00
Egor
0951c9f6dd Add one-time pinned message delivery mode 2025-12-22 13:32:34 +03:00
Egor
1d1a9e0d78 Add tables for menu layout history and button clicks 2025-12-21 07:18:52 +03:00
Egor
344ff65710 Merge pull request #2173 from Gy9vin/main
Юкасса сдк обновление
2025-12-21 04:52:41 +03:00
gy9vin
aab32299ac Детальная статистика по конкурсу рефералов. 2025-12-21 00:19:13 +03:00
gy9vin
bdc1df737b Фикс автопродления и Фиксы конкурсов 2025-12-20 14:57:38 +03:00
PEDZEO
37dd5ede9f fix 2025-12-19 23:27:00 +03:00
gy9vin
305a3c4490 Фиксы по конкурсам. 2025-12-15 21:34:56 +03:00
gy9vin
2f0594e361 Конкурсная система. 2025-12-15 20:04:39 +03:00
gy9vin
1409a0ab8d Конкурсы 2025-12-14 01:38:22 +03:00
gy9vin
80785f22b0 Черный список, мониторинг суточно графика по регламенту 2025-12-10 19:13:52 +03:00
Egor
9a5b0553c6 Avoid unescaping attribute entities in sanitizer 2025-11-28 02:22:39 +03:00
Egor
7a70a90d63 Reduce noisy price calculation logging 2025-11-27 23:55:54 +03:00
Egor
49b8a96a84 Handle missing creator on welcome text creation 2025-11-25 01:25:41 +03:00
Egor
3d44403318 Add user info to subscription event API 2025-11-25 00:24:32 +03:00
Egor
fbb1091f8b Revert "Debit balance when closing referral withdrawals" 2025-11-24 07:29:57 +03:00
Egor
45ce615fbe Debit balance when closing referral withdrawal requests 2025-11-24 07:21:39 +03:00
Egor
f40f233562 Add universal migration for referral commission column 2025-11-24 05:27:04 +03:00
Egor
7c9dfc352c Apply base promo discounts to all order components 2025-11-23 05:51:30 +03:00
Egor
eab4cce251 Add subscription events universal migration 2025-11-23 04:33:44 +03:00
Egor
c8b6830704 Clean up CryptoBot amount prompts 2025-11-21 06:32:34 +03:00
Egor
fba217b87f Fix trial reset by clearing server links 2025-11-20 22:49:57 +03:00
Egor
991e5a3112 Preserve zero device limit when replacing trials 2025-11-18 01:14:43 +03:00
c0mrade
c6c112fd17 refactor: improve logging level for balance subtraction debug info 2025-11-12 10:21:28 +03:00
Egor
e20e9e7cec Fix init_db index creation on fresh databases 2025-11-10 04:06:28 +03:00
Egor
9596f82ea6 Fix bulk_update to target records by primary key 2025-11-09 10:28:47 +03:00
Egor
ee7a445610 Update database.py 2025-11-09 09:46:40 +03:00
Egor
ba4c7ee7ac Update database.py 2025-11-09 09:43:26 +03:00
Egor
28937abab4 Handle missing pool metrics for NullPool 2025-11-09 09:40:08 +03:00
Egor
b1dcf2779e Update database.py 2025-11-09 09:25:59 +03:00
Egor
3219062ce2 Update database.py 2025-11-09 09:22:36 +03:00
Egor
cefb8cba78 Add database health and pool metrics endpoints 2025-11-09 09:17:18 +03:00
Egor
e869655028 Update database.py 2025-11-09 09:11:47 +03:00
Egor
a72bb25ea2 Update database.py 2025-11-09 08:30:38 +03:00
Egor
cde84ff20b Handle optional Pal24 metadata fields 2025-11-09 08:23:01 +03:00
Egor
43c04b7e64 Revert "Fix server category button routing in admin panel" 2025-11-09 05:55:07 +03:00
Egor
ee173190a0 Fix category edit menu callback 2025-11-09 05:48:45 +03:00
Egor
a991c59d58 Revert "Add server group backend selection logic" 2025-11-09 04:54:47 +03:00