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

60 lines
3.0 KiB
Markdown

# 07 — طبقة التكاملات
> المبدأ: كل تكامل خارجي = **محوّل (Adapter)** خلف واجهة موحّدة، يُفعَّل من [country pack](06-tenant-model.md). إضافة مزوّد جديد = ملف 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](06-tenant-model.md) · التالي: [08-data-model](08-data-model.md)