P2: ride types + class-aware matching + round-trip + dispatch + wallet + FCM + WS live location/WebRTC

- ride-types: per-tenant catalog (economy/comfort/electric/family_van/women/scooter), seeded
- matching now class-scoped (geo:drivers:{tenant}:{class}); trips match by requested type
- trips: is_round_trip (doubles distance for fare) + payment_method + wallet settlement on paid
- dispatch: operator creates trip for phone customer (role-guarded)
- wallet: balance + credit/debit + txns + self topup; wallet-paid trips settle rider→driver
- notifications: FCM device tokens + best-effort push (assign event)
- realtime: trip:join, live driver:location broadcast, WebRTC call signaling (offer/answer/ice/end)
- migration InitP2 (ride_types, wallets, wallet_txns, device_tokens, trips.is_round_trip)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 17:39:56 +03:00
co-authored by Claude Opus 4.8
parent ccb80d9e53
commit 16df6258c1
30 changed files with 737 additions and 27 deletions
+8
View File
@@ -20,6 +20,10 @@ import { FraudModule } from './modules/fraud/fraud.module';
import { ChatModule } from './modules/chat/chat.module';
import { RatingsModule } from './modules/ratings/ratings.module';
import { NabehModule } from './integrations/nabeh/nabeh.module';
import { RideTypesModule } from './modules/ride-types/ride-types.module';
import { DispatchModule } from './modules/dispatch/dispatch.module';
import { WalletModule } from './modules/wallet/wallet.module';
import { NotificationsModule } from './modules/notifications/notifications.module';
@Module({
imports: [
@@ -45,6 +49,7 @@ import { NabehModule } from './integrations/nabeh/nabeh.module';
RedisModule, // عالمي — عميل Redis للمطابقة و OTP
NabehModule, // عالمي — إرسال OTP واتساب
NotificationsModule, // عالمي — FCM
HealthModule,
TenantsModule,
@@ -53,10 +58,13 @@ import { NabehModule } from './integrations/nabeh/nabeh.module';
MapsModule,
MatchingModule,
TariffModule,
RideTypesModule,
DriversModule,
RealtimeModule,
FraudModule,
WalletModule,
TripsModule,
DispatchModule,
ChatModule,
RatingsModule,
SeedModule,