docs: الخريطة الشاملة (22) — من باك إند مكتمل إلى منصّة كاملة مماثلة لسيرو

مبنية على دراسة كود سيرو الفعلي: كتالوج سطح الميزات (تطبيقات · محرّك تسعير
· محرّك تسويق · بوتات · مواصلات · سياج جغرافي · متحكّم موقع السائق).
المجموعات L–Q: التسعير · الميزات المتقدّمة (المفاوض/الشرائح/السياج) · طبقة
الـSaaS (سوبر-أدمن + توليد التطبيق + سكربت Shorebird) · التحليلات/المواصلات/
البوتات · بوابات الدفع الحقيقية · إعادة بناء فلاتر. مع توصيات على القرارات
المفتوحة: ويب للوحات، مواصفات السيرفر، كتالوج الميزات لكل فئة.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Hamza-Ayed
2026-07-18 03:26:47 +03:00
co-authored by Claude Opus 4.8
parent 7703c23378
commit 4fc79181ff
+129
View File
@@ -0,0 +1,129 @@
# 22 — الخريطة الشاملة: من باك إند مكتمل إلى منصّة كاملة مماثلة لسيرو
> بعد اكتمال المجموعات A–K (باك إند النواة) واختبار E2E بـ43 محكّاً على السيرفر، هذه خريطة **بقية المنتج**: كل ما في سيرو + طبقة الـSaaS متعددة المستأجرين + تطبيق فلاتر مُعاد بناؤه.
> مبنية على **دراسة كود سيرو الفعلي** لا التخمين. كل مجموعة تُنفَّذ بعد إقرارك، مجموعة مجموعة (أسلوبنا المتّفق).
آخر تحديث: 2026-07-18.
---
## 0. ما درسته في سيرو (سطح الميزات الكامل)
| المكوّن | ما هو | التقنية |
|--------|-------|--------|
| `siro_rider` · `siro_driver` | تطبيقا الراكب والسائق | Flutter/GetX |
| `siro_admin` | تطبيق أدمن المستأجر | Flutter (متعدد المنصات) |
| `siro_service` | تطبيق خدمة العملاء | Flutter |
| `transit_dashboard` | لوحة المواصلات | ويب (Vite/JS) |
| `backend/pricing-engine` | تسعير ديناميكي/ذكاء أسعار المنافسين (انحدار · تجميع · surge · مناطق) | Node/TS |
| `backend/marketing_engine` | بوتات تسويق آلية + مولّد تعليقات Gemini + مهام مجدولة + تقارير | PHP + Python |
| `android_bot` · `socialBot` | بوتات | Kotlin/Android |
| `backend/Admin/geofence` | السياج الجغرافي | PHP |
| `backend/transit` + وضع الباص | نظام المواصلات (خطوط باص) | PHP + Flutter |
| `driver_assurance` | تأمين السائق | PHP |
| **متحكّم موقع السائق** (`location_controller.dart`) | تسجيل كل 3ث · رفع دفعات كل دقيقتين · واعٍ للبطارية (توفير عند 20%) · سوكت للبثّ + دفعات للحفظ · وضع باص منفصل · عتبة محفظة −200 | Flutter |
---
## 1. قراراتك المفتوحة — توصياتي
### 1.1 لوحة الأدمن/السوبر-أدمن/خدمة العملاء: ويب أم تطبيق؟
**توصيتي: ويب** للثلاثة (الأدمن · السوبر-أدمن · خدمة العملاء)، والموبايل (راكب/سائق) يبقى فلاتر.
- **لماذا ويب**: لا احتكاك متجر (تحديث فوري) · يعمل على سطح المكتب حيث يعمل المشغّلون فعلاً · بناء وصيانة أسهل من فلاتر · معيار الصناعة (لوحات أوبر/بولت ويب). سيرو استعمل فلاتر للأدمن لأنه أراد تطبيقاً واحداً، لكن للوحة تحكّم SaaS الويب أنسب.
- **لماذا الموبايل يبقى فلاتر**: GPS في الخلفية · overlay · إشعارات · كاميرا/حيوية وجه — كلها تحتاج أصيلاً (native).
- يطابق قرار بنية المستودع السابق: `dashboards/admin-web` · `dashboards/superadmin-web`.
### 1.2 مواصفات السيرفر (بحث الحمل: 1.15M رحلة/يوم على صندوق مشترك واحد)
| الدور | المواصفات | الحمل |
|-------|-----------|-------|
| **سيرفر مستأجر مشترك** (launch/brand) | 8 vCPU · 32GB · NVMe | عدة مستأجرين صغار على نفس الصندوق (عزل بالبادئة) |
| **سيرفر مستأجر سيادي** (sovereign) | 8 vCPU · 16–32GB · NVMe مخصّص | مستأجر واحد كبير حتى ~1M/يوم |
| **السيرفر الاحتياطي** | مماثل أو أصغر | نسخة Postgres متدفّقة (streaming replica) + Redis AOF |
| **Control Plane** (سوبر-أدمن + فوترة) | 4 vCPU · 8GB | يدير كل المستأجرين، منفصل |
- **العنق دائماً Postgres** (بركة الاتصالات) لا الـCPU/RAM. Redis 4–8GB يكفي (نصوص صغيرة).
- **الاحتياطي**: تكرار فيزيائي متدفّق لـPostgres (hot standby) + `docker compose` جاهز للإقلاع. RPO ≈ ثوانٍ، RTO ≈ دقائق.
- التوسّع: نسخ API أفقية خلف Nginx (الـredis-io-adapter مبني أصلاً) قبل تقسيم القاعدة.
### 1.3 كتالوج الميزات: أساسية مقابل مدفوعة (يوسّع المجموعة K)
| فئة | ميزات |
|-----|-------|
| **نواة (كل الباقات)** | رحلات · مطابقة · محفظة · تقييم · إشعارات · دردشة · مكالمات · وثائق · مركبات |
| **علامة+** | محرّك تعرفة كامل · country pack · أنواع رحلات مخصّصة · dispatch |
| **أسطول+** | API/Webhooks · تقارير متقدمة · بوابة شركات |
| **مدفوعة منفصلة (add-ons)** | 🤖 التسعير الديناميكي · 📊 استخبار السوق · 📣 محرّك التسويق/البوتات · 🚌 المواصلات · 🛡️ تأمين السائق · المفاوض الذكي · شرائح السائقين |
| **سيادة** | كل الميزات + عزل داخل الدولة |
### 1.4 توفير المستأجر من السوبر-أدمن (الخيارات التي تزوّدها)
عند إنشاء مستأجر، السوبر-أدمن يحدّد: **الاسم · اللوغو · الدولة (country pack) · وسائل الدفع · الباقة · الميزات المفعّلة · الحدود العددية**. أغلبها مبني في K (`tenants.features`/`settings`)؛ الناقص: رفع اللوغو + توليد الحزمة (§2 المجموعة N).
---
## 2. المجموعات القادمة (تكملةً لـA–K)
### المجموعة L — إكمال نموذج التسعير (B9/B10/B11 + الديناميكي)
| # | البند |
|---|-------|
| L1 | **B9**: نقاط CRUD لتحرير التعرفة من لوحة الأدمن (jsonb موجود؛ نحتاج واجهة + تحقّق) |
| L2 | **B10**: كتالوج أنواع رحلات عالمي جاهز (بدل 6 مبثوثة) — المستأجر يختار منه |
| L3 | **B11**: بُعد تسعير بالوزن (شحن/توصيل) بجانب المسافة/الزمن |
| L4 | **التسعير الديناميكي** (من `pricing-engine`): surge حسب الطلب/العرض في المنطقة + مناطق تسعير. add-on مدفوع. محرّكنا يستقبل مضاعف surge. |
### المجموعة M — ميزات التشغيل المتقدّمة (F سابقاً)
| # | البند |
|---|-------|
| M1 | **المفاوض الذكي**: الراكب يعرض سعراً، السائق يقبل/يفاوض (نمط inDrive). |
| M2 | **شرائح السائقين** (tiers): برونزي/فضي/ذهبي حسب الأداء → أولوية عروض/عمولة أقل. |
| M3 | **السياج الجغرافي** (من `Admin/geofence`): مناطق مسموح/ممنوع · تسعير حسب المنطقة · حظر دخول. |
| M4 | **تأمين السائق** (`driver_assurance`). |
### المجموعة N — طبقة الـSaaS: السوبر-أدمن وتوليد التطبيق ⭐ (الهدف الأساسي)
| # | البند |
|---|-------|
| N1 | **لوحة سوبر-أدمن (ويب)**: إنشاء مستأجر · اسم/لوغو/دولة/دفع/باقة/ميزات · تعديل الاشتراك · مراقبة الأسطول. (الباك إند K جاهز؛ نبني الواجهة.) |
| N2 | **رفع اللوغو + توليد الأيقونات/splash** تلقائياً لكل مستأجر. |
| N3 | **سكربت توليد التطبيق الواحد**: يضبط bundle ID · يبدّل الأيقونات/الـsplash من اللوغو · يحقن FCM · **يربط إضافات Kotlin/C++ الأصيلة** (overlay · method channels · NDK · root) المبنية على bundle ID · يبني · **يسجّل ويدفع عبر Shorebird**. |
| N4 | **لوحة أدمن المستأجر (ويب)**: dispatch · سائقون · رحلات · تعرفة · تقارير · مراجعة وثائق. |
| N5 | **لوحة خدمة العملاء (ويب)**: بحث مستخدم · شكاوى · تدخّل. |
### المجموعة O — التحليلات والمواصلات والتسويق
| # | البند |
|---|-------|
| O1 | **تحليل بيانات المواقع**: `driver_tracks` (مبني في H) → خرائط حرارية · تنبّؤ الطلب · سلوك السائق (H6/H7 المؤجَّلتان). |
| O2 | **نظام المواصلات** (`transit` + وضع الباص): خطوط · محطات · بثّ موقع الباص منفصل. add-on. |
| O3 | **محرّك التسويق** (`marketing_engine`): بوتات آلية · مولّد تعليقات Gemini · مهام مجدولة · تقارير. add-on. |
| O4 | **البوتات** (`socialBot` · `android_bot`): نسخ + تهيئة كـadd-ons مدفوعة خلف الاستحقاقات. |
### المجموعة P — إكمال المدفوعات (بوابات حقيقية)
| # | البند |
|---|-------|
| P1 | **بوابات فعلية**: PayMob (مصر) · CliQ (الأردن) · MTN/SyriaTel/شام كاش (سوريا) — من I3 (جدول لكل طريقة) + محوّل موحّد. |
| P2 | **webhook رسائل + Gemini** (I8): تسوية الدفع من رسائل المزوّد للأسواق بلا API. |
| P3 | **محفظة المنصة/تقرير الإيراد** (I2). |
### المجموعة Q — تطبيق فلاتر (إعادة بناء كاملة) 📱
> **إعادة استعمال الأصيل الثابت** (Kotlin/iOS من التطبيق القديم Ride/Tripz)، **وإعادة بناء Dart من الصفر** بـCubit+Bloc (لا GetX).
> راجع [[tripz-mobile-store-identity]] لمعرّفات المتاجر التي يجب الحفاظ عليها.
| # | البند |
|---|-------|
| Q1 | **الأساس**: splash · onboarding · login (هاتف+OTP، بلا كلمة مرور) · الخريطة (flutter_map + بلاطات انطلق). |
| Q2 | **الراكب**: صفحة الطلب · اختيار الوجهة/التوقفات · widgets الرحلة · تتبّع السائق حياً · الدفع · التقييم (شاشة إجبارية عند وجود رحلة معلّقة). |
| Q3 | **السائق**: overlay العرض · قبول · widgets الرحلة · **متحكّم الموقع** (تسجيل 3ث/رفع دفعات/واعٍ للبطارية — نمط سيرو) · حيوية الوجه · الرصيد/الشحن. |
| Q4 | **الخرائط المتقدّمة**: خريطة حرارية · خريطة تنبّؤية (من O1). |
| Q5 | **البنية التحتية للتطبيق**: طبقة الشبكة (توقيع HMAC · x-device-id) · country pack ديناميكي · flavors. |
---
## 3. ترتيب التنفيذ المقترح
1. **L** (التسعير) — يكمل النواة المالية، باك إند صرف، سريع.
2. **N** ⭐ (السوبر-أدمن + توليد التطبيق) — **الهدف الأساسي**؛ يجعل المنتج قابلاً للبيع لمستأجر جديد.
3. **Q** (فلاتر) — بالتوازي مع N، لأنه أطول جزء.
4. **M** (ميزات متقدّمة) · **P** (بوابات) · **O** (تحليلات/بوتات) — add-ons تُباع تِباعاً.
## 4. ما لا أعرفه بعد (أحتاج دراسة أعمق قبل تنفيذ كل مجموعة)
- تفاصيل `pricing-engine` (خوارزميات surge الفعلية) — قبل L4.
- بروتوكول `intaleq_maps` وبلاطات انطلق للـflutter_map — قبل Q1.
- تفاصيل إضافات Kotlin/C++ (overlay/NDK) وربطها بـbundle ID — قبل N3.
- API بوابات الدفع الفعلية (PayMob/CliQ/MTN) — قبل P1.
---
← ذو صلة: [17-backend-backlog](17-backend-backlog.md) · [05-pricing-billing](05-pricing-billing.md) · [06-tenant-model](06-tenant-model.md) · [19-entitlements-licensing](19-entitlements-licensing.md) · [20-tls](20-tls.md)