Commit Graph

302 Commits

Author SHA1 Message Date
Fringg
41633af763 refactor: fix transaction boundaries, extract _finalize_oauth_login, replace deprecated datetime.utcnow 2026-02-07 02:35:55 +03:00
Fringg
97be4afbff feat: add OAuth 2.0 authorization (Google, Yandex, Discord, VK)
- Add OAuth provider config vars and helpers to config.py
- Add google_id, yandex_id, discord_id, vk_id columns to User model
- Create OAuth provider service with state management and 4 providers
- Add CRUD functions for OAuth user lookup, linking, and creation
- Add 3 API endpoints: providers list, authorize URL, callback
- Add alembic migration and universal_migration support
- Fix trial disable logic to cover OAuth auth_types
2026-02-07 01:58:55 +03:00
Fringg
4c2e11e64b feat: add tariff reorder API endpoint
Add PUT /cabinet/admin/tariffs/order endpoint for drag-and-drop
tariff sorting in admin cabinet. Move db.commit() from CRUD to
route level for consistency.
2026-02-06 17:42:01 +03:00
Fringg
b9352a5bd5 fix(autopay): exclude daily subscriptions from global autopay
- Skip daily tariff subscriptions in monitoring autopay cycle
- Filter daily subscriptions in get_subscriptions_for_autopay CRUD
- Block autopay menu and toggle for daily tariffs in bot handler
- Reject autopay enable for daily subscriptions in Cabinet API (HTTP 400)
- Reject autopay enable for daily subscriptions in MiniApp API (HTTP 400)
2026-02-05 07:10:52 +03:00
Egor
0c0ab58236 Update promocode.py 2026-02-04 02:07:27 +03:00
Egor
5cef11f32b Update subscription.py 2026-02-03 04:14:15 +03:00
c0mrade
5e75210c8b fix: add refresh before assigning promo_groups to avoid async lazy load error 2026-02-02 04:55:27 +03:00
Egor
d7e1b8fd5d Update user.py 2026-02-01 11:28:36 +03:00
Egor
d611eecece Update user.py 2026-02-01 00:54:17 +03:00
Egor
9cc2a285dc Update user.py 2026-01-31 20:12:25 +03:00
Egor
25aba75413 Update user.py 2026-01-30 16:06:06 +03:00
gy9vin
dd5ee45ab5 Keep local customs over main 2026-01-27 23:51:07 +03:00
gy9vin
95b7152c05 касса и прочее 2026-01-27 23:47:39 +03:00
Egor
866f89aea4 Update notification.py 2026-01-27 15:15:24 +03:00
Egor
d18945d0ee Update referral_contest.py 2026-01-27 01:38:42 +03:00
gy9vin
0d9498f169 Багфиксы и плюшки для Кассааи 2026-01-26 12:45:08 +03:00
Egor
ac892cc899 Update subscription.py 2026-01-25 13:39:47 +03:00
Egor
658b48f154 Merge pull request #2412 from BEDOLAGA-DEV/email
Email
2026-01-25 11:55:22 +03:00
Egor
6f40cdd09c Update user.py 2026-01-25 11:52:24 +03:00
c0mrade
9a2aea038a chore: add uv package manager and ruff linter configuration
- Add pyproject.toml with uv and ruff configuration
- Pin Python version to 3.13 via .python-version
- Add Makefile commands: lint, format, fix
- Apply ruff formatting to entire codebase
- Remove unused imports (base64 in yookassa/simple_subscription)
- Update .gitignore for new config files
2026-01-24 17:45:27 +03:00
Egor
7e37bc4409 Update subscription.py 2026-01-24 11:23:28 +03:00
Egor
cd80164bee Update user.py 2026-01-24 09:56:06 +03:00
Egor
3d9a8c39dc Update user.py 2026-01-24 09:51:13 +03:00
Egor
0a0fc48463 Add files via upload 2026-01-23 11:23:51 +03:00
Egor
085459dfd3 Update transaction.py 2026-01-22 22:34:09 +03:00
Egor
5930506972 Merge pull request #2379 from Gy9vin/main
feat(payments): добавить KassaAI как отдельную платёжную систему
2026-01-21 16:12:00 +03:00
Egor
86c2092eff Update subscription.py 2026-01-21 15:43:29 +03:00
gy9vin
7aa64521d2 feat(payments): добавить KassaAI как отдельную платёжную систему
Новая платёжка KassaAI (api.fk.life) работает параллельно с Freekassa.

  Добавлено:
  - app/services/kassa_ai_service.py — API-сервис
  - app/database/crud/kassa_ai.py — CRUD-операции
  - app/services/payment/kassa_ai.py — KassaAiPaymentMixin
  - app/handlers/balance/kassa_ai.py — хендлеры пополнения

  Изменено:
  - config.py — настройки KASSA_AI_*
  - models.py — PaymentMethod.KASSA_AI, модель KassaAiPayment
  - payment_service.py — подключён KassaAiPaymentMixin
  - webserver/payments.py — webhook /kassa-ai-webhook
  - keyboards/inline.py — кнопка KassaAI
  - handlers/balance/main.py — регистрация хендлеров
  - universal_migration.py — миграция таблицы kassa_ai_payments
  - system_settings_service.py — настройки в админке
  - .env.example — примеры переменных

  Способы оплаты: 44=СБП, 36=Карты РФ, 43=SberPay
2026-01-20 19:09:27 +03:00
Egor
8ad2d50b25 Add files via upload 2026-01-20 00:18:57 +03:00
Egor
b38e06383d Update user.py 2026-01-19 23:57:03 +03:00
Egor
57981b69c7 Update server_squad.py 2026-01-19 23:46:41 +03:00
PEDZEO
b1206a84c7 feat(notifications): enhance notification security and ownership checks
- Added ownership verification for user notifications to ensure only the rightful owner can mark them as read.
- Implemented checks to confirm that admin notifications are correctly identified before allowing them to be marked as read.
- Introduced a new method to retrieve notifications by ID in the TicketNotificationCRUD for improved data handling.
2026-01-19 00:39:36 +03:00
PEDZEO
67c3dba1cc feat(notifications): implement ticket notifications for users and admins
- Added a new TicketNotification model to handle notifications for ticket events.
- Implemented user and admin notifications for new tickets and replies in the cabinet.
- Introduced settings to enable or disable notifications for users and admins.
- Enhanced ticket settings to include notification preferences.
- Integrated WebSocket notifications for real-time updates.
2026-01-19 00:02:41 +03:00
Egor
15e7725cf7 Update tariff.py 2026-01-18 05:47:59 +03:00
Egor
08d202161c Update campaign.py 2026-01-17 05:01:12 +03:00
Egor
7106c89711 Update subscription.py 2026-01-16 08:40:01 +03:00
Egor
dcaf2b8103 Update tariff.py 2026-01-16 08:35:26 +03:00
Egor
7cacc73187 Update tariff.py 2026-01-16 06:18:20 +03:00
Egor
e22e786c88 Update tariff.py 2026-01-16 06:01:50 +03:00
Egor
ec9eaf4271 Update subscription_conversion.py 2026-01-16 03:28:01 +03:00
Egor
176d17fe40 Update subscription_conversion.py 2026-01-16 03:18:53 +03:00
Egor
395646168d Update subscription.py 2026-01-16 00:50:03 +03:00
Egor
c4382ff69d Add files via upload 2026-01-15 17:31:39 +03:00
Egor
9c2b17af3b Update subscription.py 2026-01-14 04:12:18 +03:00
Egor
a1ab2f3727 Update tariff.py 2026-01-14 02:39:58 +03:00
PEDZEO
a686333603 Add support for custom days and traffic in tariffs
- Introduced fields for custom days and traffic in the tariff model, including enabling flags, pricing, and limits.
- Updated relevant routes and schemas to handle new tariff features.
- Implemented logic for purchasing and managing custom days and traffic in subscriptions.
- Added database migration scripts to accommodate new columns for tariffs and subscriptions.
2026-01-13 02:55:32 +03:00
PEDZEO
ac5850746e Merge pull request #2271 from BEDOLAGA-DEV/main
merge main
2026-01-12 22:25:49 +03:00
Egor
40fad0d537 Update subscription.py 2026-01-12 18:56:24 +03:00
Egor
67f60ba41a Update subscription.py 2026-01-12 18:44:34 +03:00
Egor
db54b01f04 Update subscription.py 2026-01-12 18:16:59 +03:00