13 KiB
13 KiB
27 — كتالوج الميزات (قائمة المالك 2026-07-19) + جرد كرون سيرو الكامل
مصدره: إملاء المالك (2026-07-19) لميزات التوليد والتفعيل، + قراءة مباشرة لكل ملفات cron في مستودع سيرو المحلي وجداول الجدولة في
Siro/docs/03_pricing/pricing_system_report.md. هذا المستند يغذّي N6 (جدولfeature_catalogوالتسعير) وN7 (مولّد عرض السعر/الحاسبة) وO5 (توحيد الكرون على BullMQ) و**§1.5 في docs/22** (أعلامconstللتوليد).
1. الحاكمية — من يقرّر وماذا يسري
- السوبر-أدمن يحدّد الميزات بالاتفاق مع المستأجر/المالك عند التعاقد، وتوليد التطبيق (N3) يُخرج نسخة بهذه المواصفات حصراً.
- القاعدة الحاكمة (docs/22 §1.5):
الفعّال = المبني في الـbinary (أعلام const) ∩ المانيفست الريموت ∩ استحقاقات السيرفر (FeatureGuard). العلم في التطبيق قرار عرض؛ الحدّ الأمني يبقى السيرفر (docs/19). - التسعير: كل ميزة مدفوعة لها سعر شهري + رسم إعداد في
feature_catalog(N6 — ⬜ لم يُبنَ)، والحاسبة في لوحة السوبر-أدمن (N7 — ⬜) تُخرج عرض السعر وتكتبtenants.featuresآلياً عند الاعتماد. الباقات نناقشها بعد بناء الكتالوج.
2. الأساسيات الثابتة — في كل نسخة، ليست خيارات
| الميزة | حالة الباك إند |
|---|---|
| Splash / Onboarding | — (فلاتر Q1) |
| تسجيل الدخول والتسجيل (هاتف + OTP، بلا كلمة مرور) | ✅ (D5، متعدد المزوّدين) |
| طلب الرحلة + عرض أسعار الفئات قبل الطلب | ✅ (POST /tariff/quote — مُثبَت 72 طلباً على السيرفر) |
| رسم البولي لاين على الخريطة | ✅ (route عبر سيرفرنا + كاش Redis) — الرسم نفسه فلاتر |
| تتبّع السائق الأساسي أثناء الرحلة | ✅ (المجموعة H — Redis فقط، عتبات سيرو) |
| الدفع كاش (الافتراضي الأساسي) | ✅ (cash.adapter) |
| التقييم + الدردشة + الإشعارات المترجمة | ✅ (A/F/G) |
3. الميزات القابلة للتفعيل والبيع (قائمة المالك)
| الميزة (بتسمية المالك) | المفتاح المقترح | حالة الباك إند | ملاحظات |
|---|---|---|---|
| عدد/تشكيلة فئات السيارات المعروضة | ride_classes_set |
✅ | ride_types لكل مستأجر + تعرفة لكل فئة (M9). الحدّ بالعدد يُضاف كـentitlement رقمي (نمط drivers_max) |
| فئات أسعار | tariff_engine_full |
✅ | محرّك كامل: نوافذ محلية التوقيت + انتظار + حدّ أدنى مرساة (docs/17-M) |
| التتبّع اللحظي المتقدّم (بولي لاين حيّ يُعاد رسمه مع تغيّر الاتجاه) | live_tracking_pro |
✅ باك إند (H) | الضغط الحقيقي محلول (Redis + عتبات). الرسم وإعادة المسار في فلاتر Q2. يُسعَّر لأنه يستهلك route calls |
| التسجيل الصوتي داخل الرحلة | trip_audio_recording |
⬜ بند جديد — لم يكن في أي خطة | يحتاج: رفع مقاطع + تخزين + سياسة احتفاظ/حذف + إقرار قانوني بالإشعار للطرفين. يُسجَّل في الـbacklog |
| معالجة وثائق السائقين بالذكاء الاصطناعي | ai_document_processing |
✅ مبني بالكود | integrations/gemini + documents.service (extractDocument + faceMatch)، خلف GEMINI_API_KEY. ai_data/user_input (C3) جاهزان |
| معالجة المشاكل/الشكاوى بالذكاء الاصطناعي | ai_complaints |
⬜ | وحدة complaints نفسها غير موجودة (لوحظ في N5). تُبنى الوحدة أولاً ثم طبقة الـAI فوقها |
| الخريطة الحرارية (سائق) | heatmap |
⬜ O1 | المصدر جاهز (driver_tracks من H) — يلزم كرون توليد الكاش (نظير cron_generate_heatmap_cache) |
| الخريطة التنبؤية | predictive_demand |
⬜ O1 | نظير cron_predictive_demand (خلايا 0.01° × 4 أسابيع تاريخ) |
| Geofence (رسائل/إعلانات/برومو بالمنطقة + تسعير مناطق) | geofence |
🔵 مبني بالكود (a15e65c + fef1235) |
Redis pub-sub + geofence_promo push عند دخول المنطقة + مضاعف تسعير في tariff.engine. ينقصه: واجهة أدمن لرسم المناطق + إثبات سيرفر |
| برومو كود عام | coupons |
✅ | محرّك الكوبونات (17-L) بسقوف العملات |
| البرومو المتخصص (استهداف شرائح/مناطق/حملات) | targeted_promo |
🔵 جزئي | geofence_promo موجود؛ محرّك الحملات المجدولة (نظير auto_marketing_pusher + passenger_reengagement) ⬜ |
| رسائل واتساب + بوت نبيه (تشغيل البوتات) | whatsapp_campaigns |
🔵 جزئي | قناة نبيه مبنية (OTP). استعمالها للحملات الجماعية ⬜ — يلزم صندوق حملات + حدود إرسال |
| محرّك التسويق (بوتات اجتماعية + مولّد تعليقات Gemini + تقارير) | marketing_engine |
⬜ O3/O4 | نقل marketing_engine + socialBot + android_bot كإضافة مدفوعة خلف الاستحقاقات |
| محرّك التسعير الديناميكي (استخبار المنافسين + surge + ضبط العمولة) | dynamic_pricing |
⬜ L4 | محرّكنا يستقبل المضاعف جاهزاً (surge.multiplier + مضاعف geofence موجودان). الناقص: البوت الذي يكتب المضاعف (نظائر ai_engine/surge_opportunity/kazan_adjuster/pricing_stability/seasonal) |
| المواصلات (خطوط باص) | transit |
🔵 microservice مبني (backend-transit/، f30209b) + لوحة مشرف |
التكامل مع تطبيقي الراكب/السائق ووضع الباص ⬜ |
| الدفع بالمحفظة | wallet_payment |
✅ | I1 مُثبَت بتزامن حقيقي |
| الدفع عبر البنوك/المحافظ الخارجية | payment_gateways |
🔵 | PayMob مبني بالكود (d4ac38c) + registry محوّلات. CliQ · MTN/سيرياتيل · شام كاش ⬜ (P1) |
| التسوية بالرسائل (SMS خام + Gemini) | sms_settlement |
✅ مبني بالكود (da035e4) |
sms-settlement.service + raw_sms + استخراج Gemini — نمط سيرو مع إغلاق ثغراته |
| المفاوض الذكي · شرائح السائقين · تأمين السائق | negotiator · driver_tiers · driver_assurance |
⬜ مؤجَّلة بقرار المالك («آخر شيء») | docs/22-M |
«الشيك القابل للإضافة والتعديل» الذي ذكره المالك شفهياً: فُهم كوسيلة دفع إضافية قابلة للتفعيل — يُثبَّت تعريفه عند أول جلسة تسعير (بنية
payment_gateway.registryتستوعب أي وسيلة جديدة كمحوّل).
4. جرد كرون سيرو الكامل (مقروء من المستودع + جداول سيرو نفسها)
الهدف: O5 — كل هذه تتوحّد عندنا في BullMQ (بادئة
tripz_) بقفل ضد التشغيل المزدوج وسجل تنفيذ. لاcrontabنظامي متناثر.
bot/ (التسعير والذكاء) — كلها ضمن dynamic_pricing وheatmap وpredictive_demand وtargeted_promo
| الملف | الجدولة (من وثائق سيرو) | الوظيفة |
|---|---|---|
cron_ai_engine |
كل 3 ساعات | يقرأ معادلات المنافسين من pricing-engine ويطبّق تسعيراً ذكياً |
cron_pricing_stability_engine |
كل 3 ساعات | shadow mode — يصنّف انحراف الأسعار (برومو مؤقت / تغيير حقيقي / مستقر) بلا لمس kazan |
cron_seasonal_pricing |
كل ساعة | مواسم (إفطار رمضان ×1.25، أعياد) بتوقيت كل دولة |
cron_surge_opportunity |
كل 10 دقائق | يكتشف مناطق ذروة المنافسين ويكتب المضاعف في Redis |
cron_kazan_adjuster |
كل 5–10 دقائق | يخفّض العمولة ويضيف حوافز للسائقين في مناطق الذروة |
cron_generate_pricing_cache |
دوري | متوسط أسعار المنافسين لكل مربع 2.5كم → Redis |
cron_generate_heatmap_cache |
كل 16 دقيقة | كاش الخريطة الحرارية → Redis |
cron_predictive_demand |
كل ساعة | تنبّؤ الطلب (نفس اليوم/الساعة × 4 أسابيع) + FCM للسائقين القريبين |
cron_empty_results_to_db |
كل ساعة | تفريغ نتائج البوت من ملف إلى القاعدة |
cron_passenger_reengagement |
يومياً 10:00 | إشعار Gemini مخصص للخاملين ≥3 أيام (anti-spam 72س في Redis) |
cron_auto_marketing_pusher |
كل ساعة | رسالة تسويقية Gemini للّي فتحوا ولم يطلبوا خلال ساعتين |
cron_silent_push_inactive |
كل بضع ساعات | push صامت يوقظ التطبيق ليرفع الموقع |
cron_dashboard_snapshot |
ساعي/يومي/أسبوعي | أرشفة لقطات التحليلات JSON |
cron_weekly_health_report |
الأحد ليلاً | تقرير صحة السوق التنافسية |
cron_gemini_advisor |
دوري | تحليل استراتيجي للمعادلات المكتشفة عبر Gemini |
marketing_engine/ — ضمن marketing_engine
| الملف | الجدولة | الوظيفة |
|---|---|---|
cron_insert_task |
كل 4 ساعات | يزرع مهام autonomous_scroll_and_reply (فيسبوك/إنستغرام) للبوتات |
cron_weekly_report |
أسبوعي | تلخيص تقارير التسويق عبر Gemini |
telegram_scraper |
كل 3 ساعات | استخراج بيانات من المنصات |
generate_10_tasks_cli |
كل 15 دقيقة | توليد مهام مصغّرة للبوتات |
transit/ — ضمن transit
| الملف | الجدولة | الوظيفة |
|---|---|---|
cron_approaching_alerts |
كل دقيقة | تنبيه اقتراب الباص من المحطة (<2كم) |
cron_cleanup |
يومياً 03:30 | تنظيف الجلسات وسجل OTP المنتهي |
cron_sync_members |
يومياً 03:00 | إعادة بناء مجموعات الأعضاء في Redis من القاعدة |
ride/ + payment_server/ — النواة
| الملف | الوظيفة | موقفنا |
|---|---|---|
cron_ride_timeout |
تصفير الرحلات العالقة waiting بعد 15 دقيقة |
🔴 فجوة مؤكّدة عندنا: expired/no_drivers انتقالان شرعيان في آلة الحالة (trips.service.ts) لكن لا شيء يطلقهما بمؤقّت — رحلة searching بلا قبول تبقى معلّقة للأبد. المطلوب: sweeper بنمط ScheduledTripsSweeper |
deleteNewDriverGiftCronJob |
حذف التكرارات يومياً من driverWallet |
لا يُنقل — ترقيع لغياب القيود؛ فهارسنا الفريدة (J6/L2) تمنع التكرار من الأصل |
5. بنود جديدة سُجّلت اليوم (لم تكن في أي مجموعة)
| # | البند | إلى أين |
|---|---|---|
| R1 | sweeper مهلة البحث (searching → no_drivers/expired) |
نواة — يُبنى فوراً قبل فلاتر، فجوة تشغيلية لا ميزة |
| R2 | التسجيل الصوتي داخل الرحلة (رفع + تخزين + احتفاظ + إشعار قانوني) | ميزة مدفوعة — بعد قرار المالك في التخزين والمدة |
| R3 | وحدة الشكاوى complaints (أساس لوحة الخدمة N5 ولميزة ai_complaints) |
نواة الإدارة |
| R4 | واجهة أدمن لرسم مناطق Geofence | مكمّل M3 |
← ذو صلة: 22-full-product-roadmap · 19-entitlements-licensing · 17-backend-backlog