feat(plans): Stage 4 — full admin plan/feature editor

The admin → Plans screen now edits EVERYTHING per plan (the backend already
accepted it; only the UI was partial):
- All limits (orders/day, tables, terminals, branches, menu categories, menu
  items, customers, report history, SMS, AI-3D) with an "unlimited (∞)" toggle.
- Display names (fa/en), monthly price, sort order, billable-online, active on/off.
- Per-plan feature checkboxes grouped by module, plus an "all features (*)" toggle
  (Enterprise). Sourced from the live feature catalog (/api/admin/features).
- Plans listed in sort order (Free·Starter·Pro·Business·Enterprise).
- i18n fa/en/ar.

Admin tsc + build clean.
This commit is contained in:
soroush.asadi
2026-06-03 01:11:18 +03:30
parent 7f52b2823f
commit 8f738f6469
5 changed files with 241 additions and 36 deletions
+23 -1
View File
@@ -1114,7 +1114,29 @@
"title": "خطط الاشتراك",
"monthlyPrice": "السعر الشهري (تومان)",
"maxOrders": "حد الطلبات اليومي",
"saved": "تم الحفظ"
"saved": "تم الحفظ",
"active": "مفعل",
"nameFa": "الاسم (فارسي)",
"nameEn": "الاسم (إنجليزي)",
"sortOrder": "الترتيب",
"billable": "قابل للدفع عبر الإنترنت",
"limitsTitle": "الحدود",
"featuresTitle": "الميزات",
"allFeatures": "كل الميزات",
"allFeaturesNote": "تشمل هذه الباقة جميع الميزات الحالية والمستقبلية.",
"save": "حفظ",
"limits": {
"maxOrders": "طلبات/يوم",
"maxTables": "الطاولات",
"maxTerminals": "أجهزة POS",
"maxBranches": "الفروع",
"maxCategories": "فئات القائمة",
"maxItems": "أصناف القائمة",
"maxCustomers": "العملاء",
"maxReportDays": "سجل التقارير (أيام)",
"maxSms": "رسائل/شهر",
"maxAi3d": "3D/شهر"
}
},
"settings": {
"title": "إعدادات التطبيق",
+23 -1
View File
@@ -1107,7 +1107,29 @@
"title": "Subscription plans",
"monthlyPrice": "Monthly price (Toman)",
"maxOrders": "Max orders per day",
"saved": "Plan saved"
"saved": "Plan saved",
"active": "Active",
"nameFa": "Name (Persian)",
"nameEn": "Name (English)",
"sortOrder": "Sort order",
"billable": "Billable online",
"limitsTitle": "Limits",
"featuresTitle": "Features",
"allFeatures": "All features",
"allFeaturesNote": "This plan includes all features (current and future).",
"save": "Save",
"limits": {
"maxOrders": "Orders/day",
"maxTables": "Tables",
"maxTerminals": "POS terminals",
"maxBranches": "Branches",
"maxCategories": "Menu categories",
"maxItems": "Menu items",
"maxCustomers": "Customers",
"maxReportDays": "Report history (days)",
"maxSms": "SMS/month",
"maxAi3d": "AI 3D/month"
}
},
"settings": {
"title": "Application settings",
+23 -1
View File
@@ -1107,7 +1107,29 @@
"title": "پلن‌ها و قیمت‌گذاری",
"monthlyPrice": "قیمت ماهانه (تومان)",
"maxOrders": "سقف سفارش روزانه",
"saved": "پلن ذخیره شد"
"saved": "پلن ذخیره شد",
"active": "فعال",
"nameFa": "نام (فارسی)",
"nameEn": "نام (انگلیسی)",
"sortOrder": "ترتیب",
"billable": "قابل پرداخت آنلاین",
"limitsTitle": "محدودیت‌ها",
"featuresTitle": "امکانات",
"allFeatures": "همه امکانات",
"allFeaturesNote": "این پلن به همه امکانات (فعلی و آینده) دسترسی دارد.",
"save": "ذخیره",
"limits": {
"maxOrders": "سفارش روزانه",
"maxTables": "میزها",
"maxTerminals": "پایانه POS",
"maxBranches": "شعب",
"maxCategories": "دسته منو",
"maxItems": "آیتم منو",
"maxCustomers": "مشتریان",
"maxReportDays": "تاریخچه گزارش (روز)",
"maxSms": "پیامک ماهانه",
"maxAi3d": "تولید ۳D ماهانه"
}
},
"settings": {
"title": "تنظیمات اپلیکیشن",