الباقات والحدود
كيف تفرض أعلام الميزات والحدود الرقمية التحكم بالوصول عبر المنصة — وكيف يتجاوزها الـ admins لكل tenant.
أعلام الباقة
كل باقة لها 28+ علماً بوليانياً (isCrmEnabled، isCommerceEnabled، isZatcaEnabled، …). عند false، الميزة المقابلة تُحوَّل لـ /pricing.
الحدود الرقمية
14 حدّاً يحدّ الاستخدام: maxUsers، maxContacts، maxInstances، maxKbDocuments، maxFunnels، maxConnectedApps، maxAutomations، maxStorageMb، maxCampaignsPerMonth، maxMonthlyMessages، maxDailyMessages، maxAiAgents، aiTokenQuota، webWidgetMaxConfigs.
تجاوزات لكل tenant
Admin → الفِرق → اختر فريقاً → «تجاوز الحدود» يسمح بمنح tenant واحد حدوداً أعلى دون تغيير tier الباقة. مفيد لصفقات المؤسسات.
نقاط الفرض
الحدود تُفرض في طبقة API عبر enforceLimit(teamId, kind) و enforceFeature(teamId, flag). الـ UI أيضاً يخفي الميزات المقفلة عبر سجل الميزات.
مسار الترقية
عند وصول tenant لحدّ، يرى المستخدم رسالة ودودة برابط لـ /pricing. العملاء يستطيعون الترقية ذاتياً عبر Stripe Customer Portal.