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:
@@ -59,6 +59,7 @@ class BazaarSubscriptionTests(TestCase):
|
||||
|
||||
def test_plan_without_sku_is_refused_for_bazaar(self):
|
||||
pack = Plan.objects.get(kind='pack', question_credits=20)
|
||||
Plan.objects.filter(pk=pack.pk).update(on_sale=True) # بستهها از subscription.0016 فروشی نیستند
|
||||
self.assertEqual(self.buy(pack).status_code, 400)
|
||||
self.assertFalse(Order.objects.filter(user_id=self.user.id).exists())
|
||||
|
||||
@@ -82,6 +83,7 @@ class BazaarSubscriptionTests(TestCase):
|
||||
def test_pack_verify_asks_for_inapp(self):
|
||||
pack = Plan.objects.get(kind='pack', question_credits=20)
|
||||
pack.bazaar_sku = 'pack20'
|
||||
pack.on_sale = True
|
||||
pack.save()
|
||||
body = self.buy(pack).json()
|
||||
self.assertEqual(body['bazaarProductType'], 'inapp')
|
||||
|
||||
Reference in New Issue
Block a user