{"engine":"Intelligence Engine","version":"1.0.0","totalFeatures":10,"features":{"dataHunter":{"name":"Data Hunter — صيّاد البيانات","icon":"🔍","description":"يسحب المحلات من قاعدة بياناتك ويحوّلها لـ prospects جاهزة للتقييم والتواصل.","howItWorks":["يتصل بـ MongoDB الخاص بمشروعك (عبر mongoUri في config)","يجلب المحلات على دفعات (batch) من 500","يتجنب التكرار — لو المحل موجود مسبقاً يتخطاه","يُنشئ Prospect جديد لكل محل غير موجود"],"howToRun":["تلقائي: كل يوم الساعة 2:00 فجراً","يدوي من API: POST /api/projects/:id/run/hunter","يدوي من تيرمنال: npm run hunter -- <projectId>"],"maxBenefit":["شغّله أول مرة على كل مدينة جديدة","بعدها يشتغل تلقائياً على المحلات الجديدة فقط","الأفضل: وصّله بـ mongoUri الخاص بـ OffersMap لسحب الـ 100k محل مباشرة"],"expectedOutcome":"بعد التشغيل: Prospects collection تمتلئ بالمحلات جاهزة للتقييم","exampleResult":{"added":1243,"skipped":89,"city":"الرياض","duration":"4.2 seconds"}},"smartScorer":{"name":"Smart Scorer — نظام التقييم الذكي","icon":"⭐","description":"يُقيّم كل محل من 100 نقطة بناءً على 4 معايير ويُرتّبهم من الأجدر للأقل.","howItWorks":["كثافة مستخدمي تطبيقك في حي المحل (40 نقطة كحد أقصى)","فئة المحل — مطاعم وكافيهات أعلى قيمة (25 نقطة)","تقييم المحل على Google (20 نقطة)","عدد المراجعات — مؤشر نشاط (15 نقطة)"],"howToRun":["تلقائي: كل يوم الساعة 2:30 فجراً بعد Data Hunter","يدوي: POST /api/projects/:id/run/scorer","يدوي من تيرمنال: npm run scorer -- <projectId>"],"maxBenefit":["الـ score يتحدث يومياً مع نمو مستخدمي تطبيقك","دائماً ابدأ التواصل بأعلى 50 محل نقاطاً","المحلات ذات score >= 70 تُرسل تلقائياً بدون مراجعة"],"expectedOutcome":"قائمة مرتبة من أفضل المحلات — جاهزة لكتابة الرسائل","exampleResult":{"scored":1243,"top":{"name":"مطعم البيت","score":87,"neighborhood":"العليا"}}},"messageCrafter":{"name":"Message Crafter — كاتب الرسائل","icon":"✍️","description":"Claude يكتب رسالة مخصصة لكل محل بناءً على بياناته الحقيقية — لا templates ثابتة.","howItWorks":["إذا مستخدمو تطبيقك في الحي >= 30 → رسالة بأرقام حقيقية (data_driven)","إذا أقل → رسالة تركّز على فرصة السبق والتميز (early_adopter)","يكتب نسختين: SMS قصيرة (160 حرف) وWhatsApp مفصّلة (500 حرف)","يحفظ في draftMessages لمراجعتك قبل الإرسال"],"howToRun":["يشتغل تلقائياً ضمن pipeline الـ campaign","يدوي: POST /api/prospects/:id/craft-message"],"maxBenefit":["راجع أول 10 رسائل يكتبها وعدّل الـ valueProposition في config","كلما كانت بيانات المحل أدق كانت الرسالة أفضل","الرسائل data_driven معدل استجابتها أعلى بكثير"],"expectedOutcome":"كل prospect عنده draftMessages جاهزة للمراجعة والإرسال","exampleResult":{"smsMessage":"ياهلا مطعم البيت! 847 شخص في العليا يبحثون عن مطاعم على OffersMap. سجّل مجاناً ووصل عروضك لهم اليوم.","approachType":"data_driven"}},"dialectEngine":{"name":"Arabic Dialect Engine — محرك اللهجة السعودية","icon":"🗣️","description":"يُحوّل أي رسالة للهجة سعودية محلية مناسبة لنوع المحل — ما يقدر يفعله أي منافس.","howItWorks":["مطاعم/كافيهات: لهجة شبابية عصرية","أزياء/جمال: لهجة عصرية خفيفة","صيدليات/بقالة: لهجة محترمة بسيطة","جيم/إلكترونيات: لهجة حماسية مباشرة"],"howToRun":["يشتغل تلقائياً بعد Message Crafter مباشرة","النتيجة تُحفظ في prospect.finalMessage"],"maxBenefit":["لا تتدخل — Claude يعرف اللهجة أفضل منك في هذا السياق","إذا لاحظت نمطاً غلطاً → أضف مثالاً في config.dialect"],"expectedOutcome":"prospect.finalMessage = رسالة WhatsApp نهائية باللهجة الصحيحة جاهزة للإرسال","exampleResult":{"before":"نحن نرحب بانضمامكم إلى منصة OffersMap","after":"ياهلا! وش رأيك تسجّل محلك على OffersMap وتوصّل عروضك للناس في حيّك؟"}},"reviewQueue":{"name":"Human Review Queue — طابور المراجعة البشرية","icon":"👁️","description":"أنت آخر خط دفاع — يُصنّف الرسائل لـ 3 مسارات ويُرسل إشعار على جوالك للمشبوهة.","howItWorks":["AUTO_SEND: score >= 70 + رسالة قصيرة + مطعم/كافيه → يُرسل تلقائياً","REVIEW: أي رسالة مشبوهة أو محل متوسط → إشعار على جوالك","BLOCK: محل رفض سابقاً أو opted_out → يُوقف نهائياً"],"howToRun":["يشتغل تلقائياً بعد Dialect Engine","للموافقة: POST /api/review/:prospectId مع { decision: \"approve\" }","للتعديل: نفس الـ endpoint مع { decision: \"edit\", editedMessage: \"...\" }"],"maxBenefit":["أول أسبوع: راجع كل رسالة يدوياً لتفهم جودة الإخراج","بعد أسبوعين: ثق بالـ AUTO_SEND للمطاعم والكافيهات","الإشعار يصلك على جوالك — راجع في أي وقت"],"expectedOutcome":"رسائل لا تخرج بدون موافقتك — صفر إحراج من رسائل غلطة","exampleResult":{"autoSend":34,"pendingReview":12,"blocked":8}},"outreachExecutor":{"name":"Outreach Executor — منفّذ التواصل","icon":"🚀","description":"ينفّذ تسلسل التواصل الكامل: SMS يوم 1 و3 → WhatsApp لمن ردّ → إعادة جدولة بعد شهرين.","howItWorks":["يوم 0: SMS أول لكل prospect approved","يوم 3: SMS ثاني إذا لم يرد","يوم 7+: WhatsApp فقط لمن ردّ على SMS (قانوني 100%)","يوم 60: إعادة جدولة من لم يستجب أبداً"],"howToRun":["SMS: تلقائي كل يوم 10:00 صباحاً","WhatsApp: تلقائي كل يوم 11:00 صباحاً","OUTREACH_MOCK=true في .env للاختبار بدون إرسال حقيقي"],"maxBenefit":["ابدأ دائماً بـ OUTREACH_MOCK=true وراجع الـ logs","بعد مراجعة أول 10 رسائل غيّر لـ OUTREACH_MOCK=false","لا تغيّر التسلسل — SMS أولاً ضروري لأسباب قانونية"],"expectedOutcome":"محلات تبدأ بالرد خلال 24-72 ساعة من اليوم الأول","exampleResult":{"sent":47,"mock":false,"nextRun":"2026-03-28T10:00:00"}},"whatsappGuardian":{"name":"WhatsApp Guardian — حارس الحساب","icon":"🛡️","description":"يحمي حساب WhatsApp Business من الحظر عبر 4 طبقات حماية.","howItWorks":["Rate Limiting: أسبوع 1=10, أسبوع 2=25, أسبوع 3=50, أسبوع 4+=100 رسالة/يوم","أوقات الصلاة: لا إرسال في نطاق ±15 دقيقة من كل صلاة","تأخير عشوائي: 2-8 دقائق بين كل رسالتين","Opt-out تلقائي: كل رسالة تحتوي \"للإيقاف أرسل: إلغاء\""],"howToRun":["يشتغل تلقائياً — لا تحتاج تشغّله يدوياً","يتحكم فيه Outreach Executor"],"maxBenefit":["لا تتجاوز الحدود في الأسابيع الأولى — الـ warm-up ضروري","راقب Redis key \"wa:{projectId}:{date}\" لمعرفة عدد الرسائل اليومية","إذا وصلت للحد → الرسائل تُجدَّل تلقائياً لليوم التالي"],"expectedOutcome":"حساب WhatsApp يعمل لسنوات بدون حظر","exampleResult":{"sent":true,"delayed":"6 minutes (prayer time buffer)","dailyCount":"8/10"}},"conversationHandler":{"name":"Conversation Handler — معالج المحادثات","icon":"💬","description":"Claude يقرأ ردود المحلات بالعربي ويُقرر الخطوة التالية تلقائياً.","howItWorks":["positive: يُغيّر status لـ interested ويُرسل رابط التسجيل","question: يُجيب تلقائياً ويُرسل رابط التسجيل","rejection: يُقفل المحل ويُجدّل بعد 60 يوماً","opt_out: يُوقف التواصل نهائياً ويُرسل تأكيد","neutral: يُرسل إشعار لك للمراجعة"],"howToRun":["يشتغل تلقائياً عند وصول webhook من WhatsApp أو SMS","Meta ترسل على: POST /api/webhooks/whatsapp","Unifonic ترسل على: POST /api/webhooks/sms"],"maxBenefit":["تأكد أن الـ webhooks مُسجّلة في Meta Developer Dashboard","راجع Conversation collection يومياً أول أسبوع","الـ suggestedReply من Claude راجعه إذا شككت في جودته"],"expectedOutcome":"محلات مهتمة تصل لرابط التسجيل تلقائياً بدون تدخل منك","exampleResult":{"intent":"positive","confidence":0.94,"action":"sent_registration_link","prospect":"مطعم البيت"}},"resilienceEngine":{"name":"Resilience Engine — محرك الصمود","icon":"⚡","description":"يضمن استمرار النظام حتى لو انقطعت Claude API أو Redis أو أي خدمة خارجية.","howItWorks":["Claude API فشلت 3 مرات → ينتقل لـ GPT-4o-mini تلقائياً","Redis down → يعمل بدون cache (أبطأ لكن لا يتوقف)","health-check كل 5 دقائق على كل الخدمات","إشعار فوري على جوالك عند أي عطل"],"howToRun":["يشتغل تلقائياً في الخلفية","GET /api/health لرؤية حالة كل الخدمات"],"maxBenefit":["تأكد أن OPENAI_API_KEY موجود في .env كـ fallback","راجع /api/health يومياً أول أسبوع","الـ Redis cache يوفر 80% من تكلفة Google Places API"],"expectedOutcome":"النظام يعمل 99%+ من الوقت بدون تدخل يدوي","exampleResult":{"mongodb":"ok","redis":"ok","claude":"ok","uptime":"99.8%"}},"scheduler":{"name":"Scheduler — المجدّل التلقائي","icon":"⏰","description":"يُشغّل كل مكوّنات النظام في الأوقات الصحيحة يومياً بدون تدخل منك.","howItWorks":["02:00 — Data Hunter: يجمع محلات جديدة","02:30 — Smart Scorer: يُقيّم ويُرتّب","10:00 — Outreach SMS: يُرسل رسائل SMS","11:00 — Outreach WhatsApp: يُرسل للمهتمين","03:00 — Reschedule: يُجدّل من لم يستجب","كل 5 دقائق — Health Check"],"howToRun":["يبدأ تلقائياً مع السيرفر","لإيقاف job مؤقتاً: comment out في scheduler.js وأعد تشغيل السيرفر"],"maxBenefit":["لا تغيّر الأوقات — مدروسة لتجنب أوقات الذروة والصلاة","في أول أسبوع: شغّل كل job يدوياً مرة لتتأكد من عمله","راقب BullMQ dashboard لو أضفته لاحقاً"],"expectedOutcome":"النظام يعمل كاملاً يومياً بدون أي تدخل منك","exampleResult":{"nextJobs":[{"name":"hunter","runsAt":"02:00"},{"name":"scorer","runsAt":"02:30"},{"name":"outreach-sms","runsAt":"10:00"}]}}}}