2.6 KiB
Telegram Group Pricing Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.
Goal: Add Telegram Login verification so backend decides Pro price: group member 5U, non-member 10U.
Architecture: Keep Supabase as the website account session, add Telegram Login as an identity link/price verification step. Backend verifies Telegram Login hash, checks getChatMember, stores the Telegram link in existing supabase_bindings, and payment intent creation recalculates price server-side.
Tech Stack: FastAPI, existing DBManager bindings, Telegram Bot HTTP API, Next.js proxy routes, React account center, pytest.
Task 1: Telegram auth service
Files:
-
Create: src/auth/telegram_group_pricing.py
-
Test: ests/test_telegram_group_pricing.py
-
Verify Telegram Login payload HMAC using bot token.
-
Call Telegram getChatMember and treat member, dministrator, creator as group members.
-
Return 5U/10U pricing payload.
Task 2: Backend auth route
Files:
-
Modify: web/core.py
-
Modify: web/services/auth_api.py
-
Modify: web/routers/auth.py
-
Add TelegramLoginRequest model.
-
Add POST /api/auth/telegram/login requiring Supabase identity.
-
Link Telegram id to current Supabase user via DBManager.bind_supabase_identity.
-
Return Telegram member status and effective price.
Task 3: Payment dynamic price
Files:
-
Modify: src/payments/contract_checkout.py
-
Modify: web/services/payment_api.py
-
At payment intent creation, check linked Telegram id and group membership.
-
Override pro_monthly amount to 5U for members, 10U otherwise.
-
Store pricing source in metadata.
Task 4: Frontend Telegram Login entry
Files:
-
Modify: rontend/components/account/AccountCenter.tsx
-
Create: rontend/app/api/auth/telegram/login/route.ts
-
Load Telegram Login widget with configured bot username.
-
Send payload to backend proxy.
-
Show group/member price status before checkout.
Task 5: Verification
Commands:
- python -m pytest tests\test_telegram_group_pricing.py tests\test_direct_payment.py tests\test_payments_runtime.py -q
- python -m py_compile src\auth\telegram_group_pricing.py src\payments\contract_checkout.py web\core.py web\services\auth_api.py
- python -m ruff check src\auth\telegram_group_pricing.py src\payments\contract_checkout.py web\core.py web\services\auth_api.py tests\test_telegram_group_pricing.py
- cd frontend; npm run typecheck