Files
tripz-llc/docs/07-integrations.md
T
HamzaandClaude Opus 4.8 95fea546f5 first commit: منصة Tripz — خطط كاملة + سكافولد باك إند NestJS/Docker
- docs/00-15: دراسة، بنية، محرك تعرفة، تسعير، نموذج استئجار، تكاملات، بيانات، realtime، خطة، devops، لاندنج، مخاطر، اصطلاحات سيرفر، تدفق نشر
- backend/: NestJS 11 على Docker (health + tenants + عزل tenant_id + بادئة tripz_ + Redis DB 3)
- apps/rider, apps/driver, dashboards/admin-web, dashboards/superadmin-web (هياكل)
- sync-to-server.sh + .gitignore

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 15:22:06 +03:00

3.0 KiB

07 — طبقة التكاملات

المبدأ: كل تكامل خارجي = محوّل (Adapter) خلف واجهة موحّدة، يُفعَّل من country pack. إضافة مزوّد جديد = ملف adapter واحد، لا مساس بالمنطق.

1. الدفع (Payment Adapters)

interface PaymentAdapter {
  charge(ctx, amount, currency): PaymentResult
  refund(ctx, txId): RefundResult
  status(txId): PaymentStatus
}
المزوّد الأولوية السوق
Cash اليوم الأول الكل
CliQ P2 الأردن
ZainCash P2 الأردن
Syriatel Cash / MTN Cash P2 سوريا
Binance Pay P2 (عمل جاهز في مستودعك) عابر
  • التسويات (settlements) للسائقين والمستأجر عبر BullMQ + سجل payouts.

2. OTP و SMS

  • ذاتي أولاً (أصل موجود من مشروعك) + مزوّد احتياطي لكل دولة.
interface SmsAdapter { send(phone, message): SmsResult }
  • طول الـ OTP و TTL من country pack.

3. واجهة المنظّم الحكومي (ميزة تُباع لا عبء)

  • نقطة تصدير/بث موحّدة: رحلات، سائقون، مركبات — قابلة للتشكيل لكل هيئة.
  • مصمّمة على شاكلة متطلبات هيئة تنظيم النقل البري (تعليمات النقل الذكي).
interface RegulatorAdapter {
  exportTrips(range): RegulatorPayload
  streamTrip(trip): void      // بث لحظي حيث يُطلب
}
  • فصل الأدوار قانونياً: نحن مزوّد تقنية، المستأجر هو المشغّل المرخّص (يُوثَّق في العقد).

4. الإشعارات

  • FCM للراكب والسائق (قوالب من notifications).
  • Webhooks عامة للمستأجرين المتقدمين (أسطول+/سيادة): نظام محاسبة، ERP أسطول... — توقيع HMAC + إعادة محاولة.

5. الخرائط (انطلق) — الخندق التنافسي

  • البلاطات عبر Martin (HTTPS)، الترميز/التوجيه/snapping من واجهات انطلق.
  • صفر اعتماد على Google في القلب.
  • طبقة تجريد في الباك إند والموبايل تسمح بتبديل مزوّد البلاطات لأي مستأجر خارج تغطية انطلق.
  • سطر البيع: «خرائط غير محدودة مشمولة — بلا فاتورة للأبد».

هيكل الكود

backend/src/integrations/
├── payments/  { cash, cliq, zaincash, syriatel, mtn, binance }.adapter.ts
├── sms/       { self, twilio, local-jo, local-sy }.adapter.ts
├── regulator/ { ltrc, generic }.adapter.ts
└── registry.ts   # يربط اسم المزوّد (من country pack) بالمحوّل

← السابق: 06-tenant-model · التالي: 08-data-model