Subscriptions only: Bazaar panel prices (598/898/1398k), assistant quota 5/3/3 from a cost calculation, packs off sale

- subscription.0016: prices equal to the Bazaar panel (senior), ai_daily_quota 5/3/3, card features; packs on_sale=False
  (one paid pack order, user 26, keeps its credits; pack paths stay for that order and for admin).
- Quota math in docs/ai-cost-and-guardrails.md: ~77% of a Bazaar sale reaches us; worst case (full quota every day)
  the assistant costs 23/27/35% of it.
- Assistant quota message points to the subscription, not packs.
982 tests green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 19:57:16 +03:30
parent c0fa46be44
commit 9c3adc3e60
13 changed files with 95 additions and 40 deletions

View File

@@ -453,10 +453,12 @@ anyone who can read this repo can forge a token for any user.**
## کافه‌بازار: اشتراک، تخفیفِ پویا، تمدیدِ خودکار — روی سرور از ۲۰۲۶-۱۰-۱۲ ۱۷:۵۴ (بک‌اند `8077ab4`، فرانت `fffdeac`)
- **محصول‌های پیشخان** (پرسشِ API با توکنِ ساختگی، ۱۰۰۰۰–۱۰۶۹۹): فقط `10342` (یک‌ماهه، به گفته‌ی مالک)، `10343` (۹۰ روزه)،
`10344` (۱۸۰ روزه)، زیرِ `com.tadrisino.math.app`؛ هر سه روی پلن‌ها (`subscription.0014`، `0015`). **بسته‌ها در بازار نیستند**
و کاشیِ بازارشان غیرفعال است. اتصالِ سرور به بازار از راهِ OAuthِ حسابِ شرکت است (کلیدِ پیشخان نداریم).
- **محصول‌های پیشخان** (پرسشِ API با توکنِ ساختگی، ۱۰۰۰۰–۱۰۶۹۹): فقط `10342` (یک‌ماهه، تأییدِ سینیور)، `10343` (۹۰ روزه)،
`10344` (۱۸۰ روزه)، زیرِ `com.tadrisino.math.app`؛ هر سه روی پلن‌ها (`subscription.0014`، `0015`). بسته‌ها دیگر فروخته نمی‌شوند. اتصالِ سرور به بازار از راهِ OAuthِ حسابِ شرکت است (کلیدِ پیشخان نداریم).
- **روش‌های پرداخت** در `payment/providers.py` (Strategy + factory)؛ تأییدِ خودِ پرداخت (کال‌بک/verify) عمداً بیرونش.
- **فقط اشتراک** (`subscription.0016`، سینیور): یک/سه/شش‌ماهه ۵۹۸/۸۹۸/۱٬۳۹۸ هزار تومان (= پیشخانِ بازار به گفته‌ی
سینیور)، سقفِ دستیار ۵/۳/۳ در روز؛ حساب در `docs/ai-cost-and-guardrails.md` «اشتراک‌ها». بسته‌ها `on_sale=False`
(کاربرِ ۲۶ یک بسته‌ی پرداخت‌شده و ۲۰ سوال اعتبار دارد). هر کارتِ خرید مزیت‌ها و سقفِ دستیار را خودش می‌گوید.
- **مسیر** و تمدیدِ خودکار: `docs/operations.md` «فروش در کافه‌بازار». `BAZAAR_DYNAMIC_PRICE_KEY` در `.env` سرور است (بکاپ:
`.deploy-backups/env-before-bazaar-dynamic-20261012-175336`)؛ توکن فقط وقتی کدِ تخفیف قیمت را کم کرده می‌رود.
- **فرانت:** دو کاشیِ «کارتِ بانکی» (پیش‌فرض) و «کافه‌بازار» همیشه کنارِ هم؛ بازار جایی که ممکن نیست غیرفعال با دلیل.
@@ -573,10 +575,7 @@ anyone who can read this repo can forge a token for any user.**
- **فقط فصلِ اولِ هر پایه رایگان است** (`content.views.unit_is_free`). بیرون از آن، بی‌اشتراکِ فعال، سوال‌های درس،
آزمونِ جزیره، ثبتِ جواب و پایانِ درس/جزیره ۴۰۲ `subscription_required` می‌دهند؛ `/api/home` برای هر فصل
`requiresSubscription` دارد. تست: `content/tests_paywall.py`.
- **اشتراک (`subscription.0013`):** یک‌ماهه ۴۹۸، سه‌ماهه ۷۹۸، شش‌ماهه ۱٬۲۹۸ هزار تومان؛ همه‌ی فصل‌ها، قلبِ نامحدود و
۳ سوال در روز از دستیار. **دستیار جدا فروخته می‌شود** (بسته‌های سوال روی فروش ماندند). رایگان ۲ سوال در روز
(`AI_DAILY_QUOTA_FREE`). حساب: بدترین حالتِ شش‌ماهه با سقفِ ۳ ≈ ۲۹٪ِ سهمِ ماهانه‌ی قیمت؛ با سقفِ ۸ ≈ ۷۸٪ بود.
- **اشتراک داخلِ اپِ بازار خریدنی نیست** (SKU ندارد، `PurchaseView` فقط بسته را از بازار می‌فروشد).
- قیمت‌ها و سقفِ دستیار از `subscription.0016` (بخشِ کافه‌بازار بالا). رایگان ۲ سوال در روز (`AI_DAILY_QUOTA_FREE`).
- حساب‌های دمو اشتراک ندارند، پس از فصلِ دوم به بعد برایشان قفل است.
- از سرور، `git fetch` از Gitea در این روز کار کرد (بی `DEPLOY_BUNDLE`).