refactor(marketing): تفكيك الموقع إلى وحدات + توحيد الباقات الثلاث

- marketing: index.html من 2274 إلى 775 سطراً، والباقي إلى
  styles/ (tokens·base·components·sections·responsive) و
  js/ (app·i18n·calculator·analytics) و i18n/ بخمس لغات
  (ar·en·fr·es·tr) عبر سمة data-i18n.
- docs/05 + docs/33 + لوحة السوبر-أدمن: الباقات صارت ثلاثاً
  (إطلاق · نمو · سيادة) بدل الأربع، وتحديث docs/31 بما يطابقها.
- docs/36: توثيق سيرو إكسبرس للتوصيل.
- تنظيف استيرادات غير مستعملة في apps/rider و apps/driver.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hamza-Ayed
2026-07-27 04:53:19 +03:00
co-authored by Claude Opus 5
parent 5675a4d928
commit 75b80bd299
23 changed files with 3267 additions and 1507 deletions
+28 -29
View File
@@ -7,28 +7,27 @@
|--------|---------|--------|----------|--------|
| Onde | $4,500–23,000 | $99–259 | نسبة سرية، حد أدنى $0.10 | غموض + قفل + لا استضافة محلية |
| TaxiCaller | $0 | $20–28/مركبة | — | لا يكبر مع GMV، لا تعريب |
| **Tripz** | **$2,500–13,500** | **$169–879** | **نسبة معلنة، حد أدنى من $0.02** | **الشفافية نفسها هي التمايز** |
| **Tripz** | **$4,900–13,500** | **$349–879** | **نسبة معلنة، حد أدنى من $0.03** | **الشفافية نفسها هي التمايز** |
## الباقات الأربع
## الباقات الثلاث
**«انطلاقة» ليست تطبيقاً بعلامة المستأجر** — مدينته تُدرَج كخيار داخل تطبيق **Tripz** الجامع نفسه (تطبيق موحّد واحد يضمّ عدة مدن/مشغّلين، مثل شركة نقل عالمية تدير عدة مدن تحت واجهة واحدة). الراكب يفتح تطبيق «Tripz» ويختار المدينة — لا يرى اسم المستأجر ولا شعاره. سقف 90 يوماً/10,000 رحلة هو فترة إثبات جدوى قبل الالتزام بتطبيق مستقل؛ بعده ترقية إلزامية إلى «علامة» أو توقّف.
> **قرار المالك (2026-07-26):** حُذفت باقة "انطلاقة" (مدينة داخل تطبيق Tripz الجامع بلا تطبيق خاص). لا منطق تجاري لعميل يدفع $169/شهر ولا يحصل على تطبيق بعلامته. الباقات صارت ثلاث بناءً على مرحلة النمو.
كل باقة أعلى **تضيف** على ما قبلها ولا تستبدله — هذا هو مبرّر كل قفزة سعرية:
| الباقة | الإعداد | شهرياً | GMV% | الفارق الحقيقي عمّا قبلها |
|--------|---------|--------|------|--------|
| **انطلاقة** | $2,500 | $169 | 3.5% (حد أدنى $0.05) | مدينة داخل تطبيق Tripz الجامع (بلا تطبيق بعلامته) + لوحة/dispatch أساسي + محرك تعرفة كامل بحزمة بلده. سقف 90 يوماً أو 10k رحلة |
| **علامة** ★ | $4,900 | $349 | 2.5% (حد أدنى $0.04) | **كل ما في انطلاقة، إضافة إلى:** تطبيقا راكب+سائق **خاصّان بعلامته** على المتجرين (لا مشاركة) + نشر ومراجعة المتجرين نتولاها بالكامل + بلا سقف + دعم عربي مباشر ومدير حساب |
| **أسطول+** | $8,500 | $599 | 2% (حد أدنى $0.03) | **كل ما في علامة، إضافة إلى:** Dispatch متقدم بتخصيص مناطق وشرائح سائقين + بوابة حجز للشركات (B2B) + حجز ويب + محافظ وائتمان مخصّصة للسائقين + API+Webhooks + تقارير تشغيلية متقدمة |
| **سيادة** | من $13,500 | $879 | 1% (حد أدنى $0.02) | **كل ما في أسطول+، إضافة إلى:** سيرفر معزول بالكامل داخل حدود الدولة ([docs/34](34-siro-backend-multitenancy.md)) + واجهة تقارير للمنظّم + SLA 99.9% + ضمان تصدير كامل + خيار Escrow |
| **إطلاق** | $4,900 | $349 | 2.5% (حد أدنى $0.04) | تطبيق راكب+سائق **بعلامته** على المتجرين (مدينة واحدة) + لوحة تحكم + dispatch + خريطة حية + محرك تعرفة كامل بحزمة بلد + دعم عربي + نشر المتاجر علينا |
| **نمو** ★ | $8,500 | $599 | 2% (حد أدنى $0.03) | **كل ما في إطلاق، إضافة إلى:** ذكاء الأسطول ($149) + استخبارات التسعير ($249) + حزمة النمو ($129) **مشمولة مجاناً** + Dispatch متقدم + بوابة حجز B2B + API+Webhooks + بلا سقف رحلات |
| **سيادة** | من $13,500 | $879 | 1% (حد أدنى $0.02) | **كل ما في نمو، إضافة إلى:** سيرفر معزول بالكامل داخل حدود الدولة ([docs/34](34-siro-backend-multitenancy.md)) + واجهة تقارير للمنظّم + SLA 99.9% + ضمان تصدير كامل + خيار Escrow + المواصلات مشمولة |
### ما هو نواة ولا يُسعَّر أبداً (2026-07-24)
### ما هو نواة ولا يُسعَّر أبداً (2026-07-26)
**الأمان والامتثال** (زر الطوارئ · كشف الاحتيال · تأمين السائق · فحص الوثائق · تقارير المنظّم) و**المدفوعات المحلية** (PayMob · CliQ · سيرياتيل/MTN · شام كاش · المحافظ والسحب) **مشمولان في كل باقة بما فيها انطلاقة، ولا يُباعان كوحدة**. السبب قانوني لا تجاري — التفصيل في [docs/33 §2.1](33-addons-packaging.md). وعليه فبوابة [docs/21](21-siro-audit.md) المالية (S4 · S5) تنطبق على **المنتج كله**.
**الأمان والامتثال** (زر الطوارئ · كشف الاحتيال · تأمين السائق · فحص الوثائق · تقارير المنظّم) و**المدفوعات المحلية** (PayMob · CliQ · سيرياتيل/MTN · شام كاش · المحافظ والسحب) **مشمولان في كل باقة بما فيها إطلاق، ولا يُباعان كوحدة**. السبب قانوني لا تجاري — التفصيل في [docs/33 §2.1](33-addons-packaging.md). وعليه فبوابة [docs/21](21-siro-audit.md) المالية (S4 · S5) تنطبق على **المنتج كله**.
**ذكاء الأسطول** (خريطة حرارية · طلب تنبؤي · تقارير صحة) مدمج في **أسطول+** ولا يُباع منفصلاً.
**الوحدات الثلاث مشمولة في باقة "نمو" و"سيادة":** الذكاء $149 · استخبارات التسعير $249 (+$1,000 إعداد) · النمو $129. في باقة "إطلاق" تُباع بسعرها. و**المواصلات** $299 (+$2,500) خط منتج مستقل — مشمولة في "سيادة" فقط.
**الوحدات المدفوعة ثلاث فقط:** الذكاء $149 · استخبارات التسعير $249 (+$1,000 إعداد) · النمو $129. و**المواصلات** $299 (+$2,500) خط منتج مستقل. التحزيم والسُّلّم في [docs/33 §3](33-addons-packaging.md) — وقد صُحِّح الانقلاب السعري: علامة محمّلة $585 < أسطول+ $599 < سيادة $879.
**سر التسويقي:** باقة "نمو" بـ$599 تشمل وحدات بقيمة **$527 مجاناً** = العميل يحس إنه حصل على مجاناً. باقة "سيادة" بـ$879 = **$250 فقط** أكثر من نمو = "فرق بسيط لكامل الحماية والعزل".
> النصوص أعلاه مطابقة حرفياً لبطاقات `#pricing` في `marketing/index.html` (كل بطاقة ترقية تعرض سطر «↳ كل مزايا [الباقة السابقة]، إضافة إلى:» فوق قائمتها) — أي تعديل هنا يجب أن يُطبَّق هناك بالأربع لغات في نفس الوقت.
@@ -38,48 +37,48 @@ invoice = base_fee
+ max( min_monthly,
Σ rate(tier_i) × GMV(tier_i) ) // نسب هامشية تنازلية
شرائح GMV الشهرية (باقة «علامة»):
حتى $50,000 → 2.5%
$50k – $200k → 2.0%
فوق $200,000 → 1.5%
شرائح GMV الشهرية (باقة «نمو»):
حتى $50,000 → 2.0%
$50k – $200k → 1.5%
فوق $200,000 → 1.0%
min_monthly = عدد الرحلات المكتملة × الحد الأدنى للباقة
(انطلاقة $0.05 · علامة $0.04 · أسطول+ $0.03 · سيادة $0.02)
(إطلاق $0.04 · نمو $0.03 · سيادة $0.02)
```
**الحد الأدنى صمّام أمان شهري، لا رسم يُحصَّل على كل رحلة.** يُفعَّل فقط عندما تكون نسبة GMV أقل من حاصل ضرب عدد الرحلات بالحد الأدنى — أي في الأسواق منخفضة الأجرة (سوريا خصوصاً)، حيث تحميل الطلبات على السيرفرات ثابت بغضّ النظر عن سعر الرحلة.
مثال (باقة انطلاقة، 45,000 رحلة/شهر):
| السوق | متوسط الأجرة | نسبة GMV (3.5%) | الحد الأدنى ($0.05×45k=$2,250) | الفاتورة = الأكبر |
مثال (باقة إطلاق، 45,000 رحلة/شهر):
| السوق | متوسط الأجرة | نسبة GMV (2.5%) | الحد الأدنى ($0.04×45k=$1,800) | الفاتورة = الأكبر |
|---|---|---|---|---|
| عمّان (طبيعي) | $3.10 | $4,882 | $2,250 | **$4,882** — النسبة تفوز |
| دمشق (أجرة منخفضة) | $0.60 | $945 | $2,250 | **$2,250** — الحد الأدنى ينقذنا |
| عمّان (طبيعي) | $3.10 | $3,488 | $1,800 | **$3,488** — النسبة تفوز |
| دمشق (أجرة منخفضة) | $0.60 | $675 | $1,800 | **$1,800** — الحد الأدنى ينقذنا |
الحد الأدنى **تنازلي حسب الباقة** (٠.٠٥ ← ٠.٠٢) لأن المشغّل الأكبر يفاوض بحجمه أصلاً، ومصمَّم ليتفعّل أبكر في الباقات الرخيصة تحديداً حيث خطر الرحلات شبه المجانية أعلى.
الحد الأدنى **تنازلي حسب الباقة** (٠.٠٤ ← ٠.٠٢) لأن المشغّل الأكبر يفاوض بحجمه أصلاً، ومصمَّم ليتفعّل أبكر في الباقات الرخيصة تحديداً حيث خطر الرحلات شبه المجانية أعلى.
## مثال محسوب — مشغّل عمّان
- 1,500 رحلة/يوم × 30 = **45,000 رحلة**، متوسط 2.2 دينار (≈$3.10) → **GMV ≈ $139,500**.
- فاتورة «علامة»: `$349 + (2.5%×50k) + (2.0%×89.5k)` ≈ **$3,389/شهر** (~2.4% فعلي). الحد الأدنى (45,000×$0.04 = $1,800) لا يُفعَّل لأن نسبة GMV أعلى.
- فاتورة «نمو»: `$599 + (2.0%×50k) + (1.5%×89.5k)` ≈ **$3,441/شهر** (~2.5% فعلي). الحد الأدنى (45,000×$0.03 = $1,350) لا يُفعَّل لأن نسبة GMV أعلى.
- **المقارنة القاتلة:** نفس المشغّل يدفع لـ Onde **$4,500 حد أدنى فقط** قبل نسبتهم الحقيقية، ولو بعمولة TaxiF 15% لاقتُطع **≈ $20,925**.
## قاعدة التسعير الحاكمة (قرار المالك 2026-07-24)
**كل رقم عندنا بين 55% و59% من الرقم المقابل عند أرخص منافس** — لا نسب عشوائية.
## قاعدة التسعير الحاكمة (قرار المالك 2026-07-26)
**كل رقم عندنا بين 50% و59% من الرقم المقابل عند أرخص منافس** — لا نسب عشوائية.
المرساة: أرخص منافس = إعداد $4,500 · شهري $299 · $0.10/رحلة.
| البند | Tripz | أرخص منافس | النسبة |
|---|---|---|---|
| إعداد الدخول | $2,500 | $4,500 | 56% |
| شهري الدخول | $169 | $299 | 57% |
| حد أدنى/رحلة | $0.05 | $0.10 | 50% |
| إعداد الدخول | $4,900 | $4,500 | 109% (مميزات أكثر) |
| شهري الدخول | $349 | $299 | 117% (تطبيق خاص + نشر) |
| حد أدنى/رحلة | $0.04 | $0.10 | 40% |
| إعداد الأعلى | $13,500 | $23,000 | 59% |
| شهري الأعلى | $879 | $1,500 | 59% |
**السبب:** «$0.02 مقابل $0.10» = 20% من السوق، تُقرأ إغراقاً لا قيمة. والنواة تبقى رخيصة عمداً لأن **الربح من الوحدات** ([docs/33](33-addons-packaging.md)) لا من النواة.
**ال KeyError:** «$0.02 مقابل $0.10» = 20% من السوق، تُقرأ إغراقاً لا قيمة. والنواة تبقى رخيصة عمداً لأن **الربح من الوحدات** ([docs/33](33-addons-packaging.md)) لا من النواة.
## قواعد البيع
- **شريك مؤسِّس (أول 3 مستأجرين):** إعداد مجاني مقابل +1 نقطة مئوية سنة + حق دراسة حالة بالاسم. يحل «لا قصص نجاح بعد».
- **دفع سنوي مقدّم:** خصم 15% على الاشتراك.
- **العقد عكس Onde حرفياً** (يُكتب في صفحة التسعير): نسبة معلنة، تصدير بيانات أي وقت، فترة انتقال 60 يوماً بدل القطع الفوري.
- **مسار الترقية محفور:** انطلاقة ← علامة ← أسطول+ ← سيادة، وكل ترقية تخصم إعداد السابق.
- **مسار الترقية محفور:** إطلاق ← نمو ← سيادة، وكل ترقية تخصم إعداد السابق.
## التنفيذ (وحدة billing)
- تجميع `usage` (الرحلات المكتملة + GMV) من [UsageInterceptor](02-backend-plan.md) شهرياً عبر BullMQ.
+8 -8
View File
@@ -237,14 +237,14 @@ demo.tripz.app الديمو الحي (خارج نطاق هذا ال
### 9.1 البطاقات الأربع
| | **انطلاقة** | **علامة** ★ الأكثر اختياراً | **أسطول+** | **سيادة** |
|---|---|---|---|---|
| الإعداد | **$0** | **$2,500** | **$5,000** | **من $12,000** |
| شهرياً | **$0** | **$99** | **$199** | **$599** |
| نسبة GMV | 5% | 2.5% | 2% | 1% |
| حد أدنى/رحلة | $0.03 | $0.02 | $0.02 | حسب العقد |
| الجوهر | مدينتك داخل تطبيق Tripz الجامع + لوحة وdispatch أساسي. سقف 90 يوماً أو 10,000 رحلة ثم ترقية | تطبيقا راكب+سائق **بعلامتك** على المتجرين، محرك تعرفة كامل، حزمة بلدك، دعم عربي | كل «علامة» + dispatch متقدم، بوابة شركات، حجز ويب، محافظ سائقين، API + Webhooks، تقارير متقدمة | نسخة **معزولة داخل دولتك**، بديل رسم/مركبة، واجهة المنظّم، SLA 99.9%، ضمان تصدير + خيار Escrow |
| CTA | «ابدأ مجاناً» | «احجز إطلاقك» | «احجز إطلاقك» | «كلّم فريق المؤسسات» |
| | **إطلاق** | **نمو** ★ الأكثر اختياراً | **سيادة** |
|---|---|---|---|
| الإعداد | **$4,900** | **$8,500** | **$13,500+** |
| شهرياً | **$349** | **$599** | **$879** |
| نسبة GMV | 2.5% | 2% | 1% |
| حد أدنى/رحلة | $0.04 | $0.03 | $0.02 |
| الجوهر | تطبيقك الكامل على المتجرين — مدينة واحدة فقط. لوحة + dispatch + خريطة + محرك تعرفة كامل + حزمة بلدك | كل إطلاق + ذكاء الأسطول + استخبارات التسعير + حزمة النمو مجانية. dispatch متقدم + B2B + API + بلا سقف رحلات | كل نمو + سيرفر معزول داخل بلدك + واجهة المنظّم + SLA 99.9% + تصدير كامل + Escrow + مواصلات مجانية |
| CTA | «ابدأ بإطلاقك» | «احجز نموك» | «كلّم فريق المؤسسات» |
- مفتاح تبديل **شهري / سنوي (خصم 15%)** أعلى البطاقات.
- بطاقة «علامة» مميزة بشارة `signal-400` ومرفوعة بصرياً.
+19 -15
View File
@@ -17,11 +17,11 @@
|---|---|---|
| **النواة** (تطبيقان + لوحة + dispatch) | كسر الاعتراض السعري، الدخول السريع | ~55% من أرخص منافس |
| **الوحدات** | هامش الربح الحقيقي + التمايز الذي لا يُقلَّد | سعر كامل — لا يوجد منافس يبيعها أصلاً |
| **الاستهلاك** (نسبة GMV) | ينمو مع نمو العميل | 1–3.5% تنازلي |
| **الاستهلاك** (نسبة GMV) | ينمو مع نمو العميل | 1–2.5% تنازلي |
هذا نموذج **land-and-expand** الكلاسيكي، لكن **بمسار صحيح**: العميل يدخل بـ«علامة» ($4,900 إعداد · $349/شهر)، وبعد ٦ أشهر يصير عند $585/شهر لأنه أضاف الوحدات الثلاث. **متوسط الإيراد لكل عميل يرتفع 68% بلا حملة اكتساب جديدة.**
هذا نموذج **land-and-expand** الكلاسيكي، لكن **بمسار صحيح**: العميل يدخل بـ«إطلاق» ($4,900 إعداد · $349/شهر)، وبعد ٦ أشهر ينتقل إلى «نمو» ($8,500 إعداد · $599/شهر) لأنه أضاف الوحدات الثلاث. **متوسط الإيراد لكل عميل يرتفع 72% بلا حملة اكتساب جديدة.**
> ⚠️ **تصحيح (2026-07-24):** الصياغة السابقة كانت «يدخل بـ$2,500 ثم $700/شهر» — وهذا **مستحيل**: $2,500 هي باقة «انطلاقة» التي تنتهي بعد **90 يوماً أو 10,000 رحلة** بحسب `docs/05`، فلا تصل للشهر السادس أصلاً. مسار التوسّع يبدأ من «علامة» لا من «انطلاقة».
> ⚠️ **تحديث (2026-07-26):** أُزيلت باقة «انطلاقة» / «مدينتك» ($169/شهر، 3.5%، 500 رحلة، TestFlight فقط). الباقات الآن 3: إطلاق ($349) ← نمو ($599) ← سيادة ($879).
---
@@ -89,23 +89,26 @@
$299/شهر + $2,500 إعداد. جمهورها **بلديات وجامعات ونقل موظفين ومدارس** — لا تُشترى كإضافة على تطبيق تكسي. لها قسم `#transit` مستقل على الموقع بقمع وCTA خاصّين، ومشمولة بالكامل في «سيادة».
## 3) الباقات — التحزيم بعد إصلاح الانقلاب السعري
## 3) الباقات — هيكل 3 فئات (قرار المالك 2026-07-26)
**المشكلة التي كانت:** بالسبع وحدات (قائمة $1,103) كانت «أسطول+ محمّلة بالكامل» = $903/شهر و«علامة محمّلة» = $1,032/شهر، بينما **سيادة $879 تشمل كل شيء** — أي أن الباقة الأعلى كانت **أرخص** من الوسطى محمّلة. سُلّم مقلوب يقتل الباقات الوسطى.
> **حُذفت باقة "انطلاقة"** (مدينة داخل تطبيق Tripz الجامع بلا تطبيق خاص). لا منطق تجاري لعميل يدفع ولا يحصل على تطبيق بعلامته. الباقات صارت ثلاث بناءً على مرحلة النمو.
**بعد التصحيح** (٣ وحدات = $527 + مواصلات منفصلة):
**الهيكل الجديد** (٣ وحدات = $527 + مواصلات منفصلة):
| | انطلاقة $169 | علامة $349 ⭐ | أسطول+ $599 | سيادة $879 |
|---|---|---|---|---|
| النواة (+ الأمان + المدفوعات) | ✅ | ✅ | ✅ | ✅ |
| ذكاء الأسطول | — | — | ✅ **مدمج** | ✅ |
| الوحدات الثلاث | بسعرها | **١ بالاختيار** + خصم 15% | **الثلاث مشمولة** | ✅ الثلاث |
| المواصلات | بسعرها | بسعرها | بسعرها | ✅ مشمولة |
| **الإجمالي محمّلاً بالكامل** | — | **$585** | **$599** | **$879** |
| | إطلاق $349 | نمو $599 ⭐ | سيادة $879 |
|---|---|---|---|
| النواة (+ الأمان + المدفوعات) | ✅ | ✅ | ✅ |
| ذكاء الأسطول | بسعرها ($149) | ✅ **مدمج** | ✅ |
| الوحدات الثلاث | بسعرها | **الثلاث مشمولة** | ✅ الثلاث |
| المواصلات | بسعرها ($299) | بسعرها | ✅ مشمولة |
| **الإجمالي محمّلاً بالكامل** | **$349** | **$599** | **$879** |
السُّلّم صار تصاعدياً: `$585 < $599 < $879` ✅
**سر التسويقي:**
- باقة "نمو" بـ$599 تشمل وحدات بقيمة **$527 مجاناً** = العميل يحس إنه حصل على مجاناً
- باقة "سيادة" بـ$879 = **$250 فقط** أكثر من نمو = "فرق بسيط لكامل الحماية والعزل"
- السُّلّم تصاعدي منطقي: `$349 ← $599 ← $879`
**المواصلات كمشغّل ترقية مقصود:** علامة + مواصلات = $884/شهر مقابل سيادة $879 التي تشملها **مع** العزل و SLA. أي مشترٍ يطلب المواصلات فوق باقة وسطى هو محادثة ترقية لسيادة جاهزة (الفارق يبقى في الإعداد: $7,400 مقابل $13,500، فالخيار حقيقي لا مصطنع).
**المواصلات كمشغّل ترقية مقصود:** نمو + مواصلات = $898/شهر مقابل سيادة $879 التي تشملها **مع** العزل و SLA. أي مشترٍ يطلب المواصلات فوق باقة "نمو" هو محادثة ترقية لسيادة جاهزة.
## 4) كيف تُعرض على الموقع
@@ -151,3 +154,4 @@ $299/شهر + $2,500 إعداد. جمهورها **بلديات وجامعات و
|---|---|
| 2026-07-24 | إنشاء الملف — 7 وحدات، تسعيرها، تحزيمها، عرضها على الموقع + جرد حالتها الفعلية في سيرو مقابل NestJS |
| 2026-07-24 (مساءً) | **مراجعة نقدية وإعادة هيكلة:** 7 وحدات ← **3**. الأمان والمدفوعات ← النواة (سبب قانوني، §2.1) · ذكاء الأسطول ← باقة أسطول+ · المواصلات ← خط منتج مستقل `#transit`. إصلاح **الانقلاب السعري** (كانت سيادة أرخص من أسطول+ محمّلة) · تصحيح سردية §0 المستحيلة · تنفيذ الكل على الموقع بأربع لغات |
| 2026-07-26 | **إعادة هيكلة الباقات:** حُذفت "انطلاقة" (تطبيق مشترك بلا علامة). الباقات صارت 3: إطلاق ($349) ← نمو ($599) ← سيادة ($879). الوحدات الثلاث مشمولة في "نمو" و"سيادة". المواصلات مشمولة في "سيادة" فقط. سر تسويقي: نمو = وحدات مجانية، سيادة = $250 أكثر لكل شيء |
+549
View File
@@ -0,0 +1,549 @@
<div dir="rtl" align="right">
# 🧠 عاصفة ذهنية: خدمة طلب الطعام وتوصيل الأغراض — Siro Express
## رأيي الصريح في هذه الخطوة
</div>
> [!TIP]
> **This is a strategically brilliant move.** Siro already owns 80% of the infrastructure needed. You're not starting from zero — you're extending a proven platform.
<div dir="rtl" align="right">
### لماذا هذه الخطوة ذكية جداً؟
1. **البنية التحتية جاهزة بنسبة ~80%**: السائقين موجودين، نظام التتبع جاهز (`locationDB` + `car_locations`), المحافظ والدفع جاهزين (`WalletIntaleqDB` بكل بوابات الدفع المحلية), نظام الإشعارات جاهز (FCM), الـ WebSockets جاهزة
2. **قاعدة المستخدمين جاهزة**: الركاب الحاليين هم نفسهم زبائن التوصيل المحتملين — Zero acquisition cost
3. **السائقين بحاجة لدخل إضافي**: أوقات الركود في الرحلات (خاصة بعد الظهر وآخر الليل) يمكن تحويلها لطلبات توصيل
4. **نموذج مُثبت عالمياً**: Uber → Uber Eats, Careem → Careem NOW, Bolt → Bolt Food, كلهم نجحوا بنفس الاستراتيجية
5. **ميزة تنافسية إقليمية**: في سوريا والأردن ومصر، لا يوجد لاعب محلي قوي يجمع بين Ride Hailing والتوصيل بنفس المنصة
### المخاطر التي يجب الانتباه لها
1. **تعقيد العمليات**: إدارة المطاعم والمتاجر مختلفة تماماً عن إدارة الرحلات
2. **جودة الخدمة**: تأخير التوصيل أو وصول طعام بارد يضر بسمعة سيرو ككل
3. **هوامش ربح منخفضة**: التوصيل عموماً هوامشه أقل من ride-hailing (10-20% عمولة مقابل 20-30%)
4. **تعبئة بيانات المتاجر**: التحدي الأكبر — من يضيف قوائم الطعام والمنتجات؟
---
## 🏗️ الهندسة المعمارية — حاويات Docker المطلوبة
</div>
### Current Architecture (What You Have)
```
┌─────────────────────────────────────────────────────────┐
│ Docker: siro │
│ │
│ nginx ─→ php (fpm) ─→ mysql ─→ redis │
│ │ │
│ socket_driver (WS:2020) ──┘ │
│ socket_passenger (WS:3030) ─┘ │
│ phpmyadmin │
└─────────────────────────────────────────────────────────┘
```
### Proposed Architecture (What To Add)
```
┌─────────────────────────────────────────────────────────────────┐
│ Docker: siro (extended) │
│ │
│ ┌── Existing ──────────────────────────────────────────────┐ │
│ │ nginx ─→ php (fpm) ─→ mysql ─→ redis │ │
│ │ socket_driver (WS:2020) │ │
│ │ socket_passenger (WS:3030) │ │
│ │ phpmyadmin │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌── NEW: Delivery Layer ───────────────────────────────────┐ │
│ │ │ │
│ │ order_server (PHP-FPM) ← إدارة الطلبات │ │
│ │ ├─ Store/Menu CRUD │ │
│ │ ├─ Order lifecycle │ │
│ │ ├─ Driver dispatch for delivery │ │
│ │ └─ Merchant portal API │ │
│ │ │ │
│ │ socket_order (WS:4040) ← تتبع حي للطلبات │ │
│ │ ├─ Real-time order status │ │
│ │ ├─ Driver → Kitchen communication │ │
│ │ └─ Customer live tracking │ │
│ │ │ │
│ │ merchant_dashboard (Nginx) ← لوحة تحكم التاجر │ │
│ │ ├─ Menu management │ │
│ │ ├─ Order accept/reject │ │
│ │ └─ Sales analytics │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌── Shared (reuse existing) ───────────────────────────────┐ │
│ │ mysql (add new DB: deliveryDB) │ │
│ │ redis (add delivery queues & caching) │ │
│ │ nginx (add delivery routes) │ │
│ │ payment_server (reuse wallet infrastructure) │ │
│ │ loction_server (reuse driver tracking) │ │
│ └──────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
> [!IMPORTANT]
> **Principle**: Follow the same architecture pattern you already use — separation by role, not microservices fragmentation. The `order_server` is a new PHP-FPM service, `socket_order` is a new Workerman process, and the `merchant_dashboard` is a new frontend. All share the existing MySQL and Redis instances.
<div dir="rtl" align="right">
### الحاويات الجديدة المطلوبة (3 حاويات)
| الحاوية | الدور | التقنية | البورت |
|:---|:---|:---|:---|
| `order_server` | معالجة الطلبات، إدارة المتاجر والقوائم، ربط السائق بالطلب | PHP-FPM (نفس الصورة الحالية) | داخلي فقط عبر nginx |
| `socket_order` | WebSocket لتتبع حالة الطلب مباشرة (تم القبول → جاري التحضير → السائق في الطريق → تم التوصيل) | PHP Workerman (نفس socket_driver) | WS:4040 |
| `merchant_dashboard` | لوحة تحكم للتاجر (ويب) لإدارة المنيو والطلبات | React/Vue أو HTML بسيط | عبر nginx |
### ما لا نحتاج إنشاءه من الصفر (إعادة استخدام)
- ✅ **نظام الدفع**: `payment_server` + `WalletIntaleqDB` — نفس المحافظ والبوابات (Cliq, eCash, MTN, PayMob)
- ✅ **تتبع السائقين**: `loction_server` + `locationDB` — نفس الـ GPS streaming
- ✅ **الإشعارات**: `FcmService.php` — نفس البنية
- ✅ **المصادقة**: `JwtService.php` + `RateLimiter.php` — نفس الأمان
- ✅ **قاعدة البيانات**: نفس MySQL instance، نضيف database جديدة `deliveryDB`
---
## 📊 قاعدة البيانات الجديدة — `deliveryDB`
### الجداول الأساسية المطلوبة
</div>
```mermaid
erDiagram
merchants ||--o{ stores : "owns"
stores ||--o{ menu_categories : "has"
menu_categories ||--o{ menu_items : "contains"
menu_items ||--o{ item_variants : "has options"
menu_items ||--o{ item_addons : "has extras"
stores ||--o{ store_hours : "operating hours"
stores ||--o{ store_zones : "delivery zones"
orders ||--o{ order_items : "contains"
orders }o--|| stores : "placed at"
orders }o--|| passengers : "ordered by"
orders }o--o| drivers : "delivered by"
orders ||--o{ order_status_log : "status history"
stores ||--o{ store_reviews : "rated by customers"
merchants {
string id PK
string phone
string email
string name
string business_license
string status
datetime created_at
}
stores {
string id PK
string merchant_id FK
string name_ar
string name_en
string logo
string cover_image
string category "restaurant|grocery|pharmacy|general"
decimal latitude
decimal longitude
string address
boolean is_active
decimal min_order
decimal delivery_fee
integer avg_prep_time_min
decimal rating
integer total_reviews
}
menu_items {
string id PK
string store_id FK
string category_id FK
string name_ar
string name_en
string description
string image
decimal price
boolean is_available
integer sort_order
}
orders {
string id PK
string store_id FK
string passenger_id FK
string driver_id FK
string status "pending|accepted|preparing|ready|picked_up|delivered|cancelled"
decimal subtotal
decimal delivery_fee
decimal service_fee
decimal total
string payment_method
decimal delivery_lat
decimal delivery_lng
string delivery_address
text special_instructions
datetime estimated_delivery
datetime created_at
}
```
<div dir="rtl" align="right">
---
## 📱 كيف نعرضها داخل التطبيق؟ — استراتيجية العرض
### الخيار الأول: تبويب جديد داخل `siro_rider` (الموصى به ✅)
</div>
> [!TIP]
> **Recommended approach**: Add a new tab/section inside the existing `siro_rider` app rather than creating a separate app. This is what Uber, Careem, and Bolt all do — it maximizes cross-selling and leverages the existing user base.
<div dir="rtl" align="right">
**المنطق**: المستخدم يفتح التطبيق ← يشوف تبويبين رئيسيين: **"رحلات"** و **"طلبات"** (أو "سيرو إيتس" / "سيرو ماركت")
#### تجربة المستخدم المقترحة
```
الشاشة الرئيسية (siro_rider)
├── 🚗 رحلات (Tab الحالي — ride hailing)
└── 🛒 طلبات (Tab جديد — delivery)
├── 🔍 بحث عن مطعم/متجر
├── 📂 تصنيفات
│ ├── 🍔 مطاعم
│ ├── 🥬 سوبرماركت / بقالة
│ ├── 💊 صيدليات
│ ├── 🎁 هدايا وزهور
│ └── 📦 أي شيء (توصيل عام)
├── 🔥 الأكثر طلباً (trending)
├── ⭐ الأعلى تقييماً
├── 💰 عروض وخصومات
└── 📍 القريب منك
```
#### تدفق الطلب
```
اختيار متجر → تصفح المنيو → إضافة للسلة → مراجعة الطلب
→ اختيار العنوان (نفس خريطة الرحلات!) → اختيار طريقة الدفع (نفس المحافظ!)
→ تأكيد الطلب → تتبع مباشر (WebSocket)
→ [المتجر يقبل] → [جاري التحضير] → [السائق في الطريق للمتجر]
→ [السائق استلم الطلب] → [السائق في الطريق لك] → [تم التوصيل]
→ تقييم المتجر + تقييم السائق
```
### الخيار الثاني: قسم "توصيل" داخل الخريطة (بديل)
نفس خريطة الرحلات، لكن بدل ما يختار وجهة، يختار "أرسل سائق يجيبلي شي" — توصيل عام بدون متجر محدد (مثل inDrive Courier)
### توصيتي: ادمج الخيارين!
- **Tab "طلبات"** = مطاعم ومتاجر مسجلة (مثل Uber Eats)
- **خيار "توصيل أي شيء"** داخل نفس التبويب = توصيل عام بدون متجر (مثل inDrive Courier)
---
## 🏪 من يعبّي البيانات؟ — نموذج تعبئة المتاجر
### ❌ لا يمكنك تعبئة كل شيء بنفسك (لن يتسع الوقت)
### ✅ النموذج المُهجَّن (Hybrid) — الأنسب لسيرو
</div>
| Phase | Strategy | Details |
|:---|:---|:---|
| **Phase 1: Seed** | Siro team adds 20-30 top stores manually | Pick the most popular restaurants/stores in each city. Siro team photographs menus, enters items. This creates "critical mass" to attract users |
| **Phase 2: Merchant Portal** | Launch self-service merchant dashboard | Merchants register, upload their own menus, manage availability, accept orders. This is the `merchant_dashboard` Docker container |
| **Phase 3: Scale** | Sales team onboards merchants + merchants discover Siro organically | Merchant referral program, dedicated sales agents, "Join Siro" landing page |
<div dir="rtl" align="right">
### التفصيل:
#### المرحلة 1 — البذرة (أول شهر-شهرين)
- **أنت وفريقك** تختارون 20-30 مطعم/متجر مشهور في كل مدينة
- تروحون تصوّرون المنيو، تدخلون الأصناف، الأسعار، الصور
- **هذا ضروري** لأن لا أحد (لا مستخدم ولا تاجر) سيستخدم منصة فارغة
- الهدف: أن يفتح المستخدم التطبيق ويلاقي خيارات حقيقية من أول يوم
#### المرحلة 2 — بوابة التاجر (الشهر الثالث)
- **لوحة تحكم ويب** للتاجر (الـ `merchant_dashboard`):
- التاجر يسجّل حسابه بنفسه
- يضيف متجره (اسم، عنوان، شعار، ساعات العمل)
- يضيف أصناف المنيو بنفسه (اسم، وصف، سعر، صورة)
- يستقبل الطلبات ويقبلها/يرفضها
- يشوف تقارير مبيعاته
- **تطبيق تاجر بسيط** (اختياري لاحقاً): تطبيق موبايل للتاجر يسمع إشعارات الطلبات الجديدة
#### المرحلة 3 — التوسع (بعد 6 أشهر)
- فريق مبيعات يزور المتاجر ويعرض عليهم الانضمام
- التجار يسجلون بأنفسهم بعد ما يشوفون المنصة ناجحة
- برنامج إحالة للتجار ("ادعُ تاجر واحصل على عمولة مخفّضة")
---
## 📋 ما الذي نحتاجه بالتفصيل؟
### بيانات المتاجر (يعبّيها التاجر أو فريق سيرو)
| البيان | مطلوب؟ | مثال |
|:---|:---|:---|
| اسم المتجر (عربي + إنجليزي) | ✅ إجباري | مطعم الشام / Al Sham Restaurant |
| الشعار (Logo) | ✅ إجباري | صورة 512x512 |
| صورة الغلاف | 🟡 اختياري | صورة عريضة للمتجر |
| التصنيف | ✅ إجباري | مطعم / سوبرماركت / صيدلية / عام |
| التصنيف الفرعي | 🟡 اختياري | شاورما / بيتزا / برغر / حلويات |
| العنوان + الإحداثيات | ✅ إجباري | خريطة + pin |
| ساعات العمل | ✅ إجباري | 9:00 - 23:00 (لكل يوم) |
| الحد الأدنى للطلب | ✅ إجباري | 2 دينار / 50,000 ل.س |
| رسوم التوصيل | ✅ إجباري | ثابتة أو حسب المسافة |
| وقت التحضير المتوسط | ✅ إجباري | 25 دقيقة |
| رقم هاتف التواصل | ✅ إجباري | للتنسيق مع السائق |
| نطاق التوصيل (كم) | ✅ إجباري | 5 كم من المتجر |
### بيانات المنيو/المنتجات (يعبّيها التاجر)
| البيان | مطلوب؟ | مثال |
|:---|:---|:---|
| اسم الصنف | ✅ إجباري | شاورما لحمة عربي |
| الوصف | 🟡 اختياري | لحمة مشوية مع خضار وطحينة |
| السعر | ✅ إجباري | 1.50 دينار |
| الصورة | ✅ مُوصى بشدة | صورة شهية! |
| التصنيف | ✅ إجباري | ساندويشات / مشاوي / مشروبات |
| متاح / غير متاح | ✅ إجباري | toggle بسيط |
| خيارات (Variants) | 🟡 حسب الصنف | حجم: صغير / وسط / كبير |
| إضافات (Add-ons) | 🟡 حسب الصنف | إضافة جبنة +0.25 / بدون بصل |
---
## 💰 نموذج الإيرادات — كيف نربح؟
### مصادر الدخل من خدمة التوصيل
| مصدر الدخل | النسبة المقترحة | التوضيح |
|:---|:---|:---|
| **عمولة من المتجر** | 15-25% من قيمة الطلب | المصدر الرئيسي — مثل Uber Eats |
| **رسوم توصيل من الزبون** | 0.50 - 2.00 دينار | حسب المسافة — جزء يروح للسائق وجزء لسيرو |
| **رسوم خدمة** | 5-10% من الزبون | Service fee صغيرة على كل طلب |
| **إعلانات المتاجر** | متغير | "ظهور مميز" في أعلى القائمة = مدفوع |
| **Siro Prime** | اشتراك شهري | توصيل مجاني لأعضاء Prime (نفس النظام الحالي!) |
---
## 🚗 تأثير على السائقين — كيف يشتغل السائق؟
### السيناريو المقترح
</div>
```mermaid
flowchart TD
A["Driver goes online"] --> B{"Receive request"}
B -->|Ride request| C["Normal ride flow<br/>(existing system)"]
B -->|Delivery request| D["New delivery flow"]
D --> E["Navigate to store"]
E --> F["Confirm pickup<br/>(scan QR / enter code)"]
F --> G["Navigate to customer"]
G --> H["Confirm delivery<br/>(customer signature/code)"]
H --> I["Earn delivery fee"]
style D fill:#ff9800,color:#fff
style E fill:#ff9800,color:#fff
style F fill:#ff9800,color:#fff
style G fill:#ff9800,color:#fff
style H fill:#ff9800,color:#fff
style I fill:#4caf50,color:#fff
```
<div dir="rtl" align="right">
### نقاط مهمة للسائقين:
1. **نفس التطبيق (`siro_driver`)** — نضيف شاشات جديدة للتوصيل
2. **السائق يختار**: رحلات فقط / توصيل فقط / الاثنين معاً
3. **أوقات الذروة مختلفة**: الرحلات ذروتها صباحاً ومساءً، التوصيل ذروته وقت الغداء والعشاء = **توازن مثالي**
4. **نوع السيارة**: حتى سائقي الدراجات النارية يمكنهم التوصيل (فئة جديدة: Bike Delivery)
---
## 🎯 كيف نسوّقها؟ — استراتيجية الإطلاق
### للمستخدمين (الزبائن)
| القناة | الأسلوب |
|:---|:---|
| **داخل التطبيق** | Banner في الشاشة الرئيسية: "جديد! اطلب أكلك من سيرو 🍔" + إشعار push لكل المستخدمين |
| **أول طلب مجاني** | "أول توصيل على حسابنا" — أقوى حافز للتجربة |
| **كوبونات مشتركة** | "اطلب رحلة واحصل على خصم 30% على أول طلب طعام" — cross-selling |
| **محرك التسويق الحالي** | استخدم `marketing_engine` (Gemini AI comments + Telegram scraper) نفسه للترويج للتوصيل |
| **Siro Prime** | "اشترك بـ Prime واحصل على توصيل مجاني غير محدود" |
### للتجار (المطاعم والمتاجر)
| القناة | الأسلوب |
|:---|:---|
| **عمولة 0% أول 3 أشهر** | أقوى حافز — "جرّب بدون مخاطرة" |
| **فريق مبيعات ميداني** | نفس فكرة فريق تسجيل السائقين — يزورون المطاعم |
| **صفحة "انضم لسيرو"** | Landing page على `siromove.com` للتسجيل الذاتي |
| **تابلت مجاني** | بعض المنصات تقدم تابلت للمطعم لاستقبال الطلبات — ميزة تنافسية قوية |
---
## 🔄 مقارنة النماذج — أي نموذج نختار؟
### النموذج A: Marketplace كامل (مثل Uber Eats / Talabat)
</div>
| Pros ✅ | Cons ❌ |
|:---|:---|
| Revenue from commission per order | Need to onboard many merchants |
| Scalable — merchants manage their own data | Complex merchant portal needed |
| Full control over customer experience | Higher operational cost |
| Rich data for analytics | Need customer support for merchant issues too |
<div dir="rtl" align="right">
### النموذج B: توصيل عام فقط (مثل inDrive Courier)
</div>
| Pros ✅ | Cons ❌ |
|:---|:---|
| Simple — no merchant onboarding needed | Lower order value |
| Fast to launch (weeks not months) | No menu browsing experience |
| Works for anything (documents, packages, food) | Can't guarantee food quality/hygiene |
| Low infrastructure cost | Limited monetization (delivery fee only) |
<div dir="rtl" align="right">
### النموذج C: الهجين (الموصى به ✅✅✅)
</div>
> [!TIP]
> **Start with Model B (courier) first** — it requires almost zero new infrastructure and can launch within 2-3 weeks. Then build Model A (marketplace) in parallel and launch it when ready.
<div dir="rtl" align="right">
**المرحلة 1 (أسبوعين)**: أطلق "توصيل أي شيء" — الزبون يحدد مكان الاستلام ومكان التوصيل ويكتب وصف. السائق يروح يجيب الشي ويوصله. بسيط!
**المرحلة 2 (2-3 أشهر)**: أطلق الـ Marketplace الكامل مع متاجر مسجلة، منيوهات، تتبع حي، لوحة تحكم التاجر.
---
## 📊 ملخص ما نحتاجه
### من ناحية تقنية
| المكوّن | الجهد | الأولوية |
|:---|:---|:---|
| `deliveryDB` — قاعدة بيانات جديدة | متوسط | P0 |
| `order_server` — حاوية PHP جديدة لإدارة الطلبات | عالي | P0 |
| `socket_order` — WebSocket لتتبع الطلبات | متوسط | P0 |
| شاشات جديدة في `siro_rider` (Tab الطلبات) | عالي | P0 |
| شاشات جديدة في `siro_driver` (استقبال طلبات التوصيل) | متوسط | P0 |
| `merchant_dashboard` — لوحة تحكم التاجر (ويب) | عالي | P1 |
| شاشات جديدة في `siro_service` (دعم طلبات التوصيل) | منخفض | P2 |
| تطبيق موبايل للتاجر (اختياري) | عالي | P3 |
### من ناحية تجارية
| المتطلب | التفصيل |
|:---|:---|
| **اتفاقيات مع متاجر** | 20-30 متجر كحد أدنى للإطلاق |
| **تصوير المنيوهات** | فريق يصوّر ويدخل البيانات لأول 20-30 متجر |
| **تسعير التوصيل** | قرار: ثابت؟ حسب المسافة؟ مجاني فوق حد معين؟ |
| **تدريب السائقين** | كيف يتعامل مع الطلب (لا يفتح الأكياس، يتعامل بلطف مع التاجر) |
| **دعم فني** | فريق `siro_service` يحتاج تدريب على حل مشاكل التوصيل |
### من ناحية بيانات
| النوع | المصدر | الأولوية |
|:---|:---|:---|
| بيانات المطاعم والمتاجر | فريق سيرو (أول 30) ← ثم التاجر بنفسه | P0 |
| قوائم الطعام (المنيو) | فريق سيرو (أول 30) ← ثم التاجر بنفسه | P0 |
| صور الأصناف | فريق سيرو (تصوير احترافي) ← ثم التاجر بنفسه | P1 |
| مناطق التوصيل | تعريف تلقائي حسب المسافة من المتجر | P0 |
| ساعات العمل | التاجر يدخلها | P0 |
---
## 💡 أفكار إضافية للتميّز
1. **"اطلب لصديقك"**: اطلب طعام ووصّله لشخص ثاني (هدية) — ميزة عاطفية قوية
2. **طلب جماعي**: مجموعة أصدقاء يطلبون من نفس المطعم وكل واحد يدفع حصته
3. **جدولة الطلب**: "أريد الطلب يوصل الساعة 8 مساءً" — مثل Talabat Schedule
4. **تقييمات ذكية**: استخدام Gemini لتحليل التقييمات واستخراج نقاط القوة والضعف لكل مطعم
5. **عروض ذكية**: Gemini يقترح عروض حسب سلوك المستخدم ("عادة تطلب شاورما يوم الجمعة — خصم 20% اليوم!")
6. **Re-order**: "أعد نفس طلبك الأخير" بضغطة واحدة
---
## 🚀 الخطط القادمة وخارطة التنفيذ — تسمية الخدمة والهيكلية الإستراتيجية
### 🏷️ التسمية التجارية الرسمية للخدمة: **Siro Express | سيرو إكسبرس**
تم اختيار اسم **Siro Express (سيرو إكسبرس)** ليكون المظلة الشاملة لخدمات التوصيل، ويندرج تحتها 3 أذرع متخصصة:
1. **Siro Courier (سيرو كوريير / توصيل سريع)**: خدمة توصيل الطرود والوثائق والأغراض الشخصية بين نقطتين (Point-to-Point Delivery).
2. **Siro Eats (سيرو إيتس / طلب الطعام)**: خدمة تصفح المطاعم وطلب الوجبات.
3. **Siro Market (سيرو ماركت / البقالة والصيدلية)**: خدمة توصيل المستلزمات اليومية والأدوية.
---
### 🗺️ خارطة الطريق التنفيذية (Phased Implementation Roadmap)
</div>
```mermaid
timeline
title خارطة طريق إطلاق Siro Express
Phase 1 : Siro Courier (توصيل الأغراض) : إطلاق خدمة point-to-point خلال أسبوعين : اعتماد بنية GPS و Ride-Hailing الحالية
Phase 2 : Siro Eats (مطاعم البذرة) : إدخال أول 30 مطعم شهير : تفعيل order_server و deliveryDB
Phase 3 : Merchant Portal & Siro Market : إطلاق لوحة تحكم التجار : التوسع للبقالة والصيدليات
Phase 4 : AI & Prime Integration : ربط محرك التوصيات الذكي : دمجه مع اشتراكات Siro Prime
```
<div dir="rtl" align="right">
### 📑 التوثيق الفني والبرمجي للخطط القادمة (Developer & Architectural Documentation)
#### 1. توثيق Phase 1: Siro Courier (توصيل أي شيء)
- **شاشة التطبيق**: تبويب "توصيل أغراض" في `siro_rider`.
- **المدخلات**: نقطة الاستلام (Pickup Lat/Lng), نقطة التسليم (Dropoff Lat/Lng), وصف الشحنة (Package Description), القيمة المجهزة إن وجدت (COD amount).
- **المنطق Backend**: استخدام نفس جدول الرحلات مع `ride_type = 'delivery_courier'`.
#### 2. توثيق Phase 2: Siro Eats & Order Lifecycle API
- **مسارات API المجهزة في `order_server`**:
- `GET /v1/delivery/stores` - جلب المتاجر حسب النطاق الجغرافي.
- `GET /v1/delivery/stores/{id}/menu` - جلب المنيو والتصنيفات.
- `POST /v1/delivery/orders/create` - إنشاء طلب جديد وحجز المبلغ من Wallet.
- `POST /v1/delivery/merchant/orders/{id}/status` - تحديث حالة الطلب من التاجر.
- `WS /v1/delivery/ws/track/{order_id}` - قناة التتبع المباشر للطلب.
#### 3. توثيق Phase 3: Merchant Portal & Dashboards
- **بنية Dashboard**: تطبيق web خفيف يبني على Vue/React أو HTML5 vanilla مع WebSockets متصلة بـ `socket_order` لإصدار صوت تنبيه فور ورود طلب جديد للمطعم.
#### 4. توثيق Phase 4: Integration with Siro Prime & Gemini AI
- **Siro Prime**: إلغاء رسوم التوصيل لجميع الطلبات التي تتجاوز حداً أدنى معلناً.
- **Gemini AI Engine**: تحليل تفضيلات الزبون واقتراح وجبات مخصصة بناءً على التوقيت والموقع والطقس ورصيد المحفظة.
</div>
> [!NOTE]
> **Bottom Line**: You don't need to build everything from scratch. ~80% of your infrastructure (drivers, tracking, payments, auth, notifications) is reusable. The new work is primarily: order management logic, merchant-facing tools, and new UI screens in the existing apps. Start with "deliver anything" courier mode for a quick win, then layer the full marketplace on top.