10 KiB
10 KiB
DATABASE_DEPENDENCY_MATRIX.md — Complete Database Reference
Database: intaleqDB1 (Primary Database)
| Table | PK | FKs | Used By | Related APIs |
|---|---|---|---|---|
passengers |
id (varchar) |
- | Auth, Profile, Ride, Wallet | login, signup, profile/get, getPassengerDetails |
driver |
idn (auto) + id (varchar) |
- | Auth, Profile, Admin | loginCaptin, register, getCaptainProfile |
ride |
id (auto) |
passenger_id → passengers(id), driver_id → driver(id) |
Ride lifecycle, Admin, History | getRides, updateRides, addRides |
waitingRides |
id (varchar) |
passenger_id → passengers(id) |
Ride dispatching, Matching | addRides, getRideOrderID |
car_locations |
driver_id (varchar) |
driver_id → driver(id) |
Location tracking, Nearby drivers | getCarsLocationByPassenger*, addLocation |
car_tracks |
id (auto) |
driver_id → driver(id) |
Location history | - |
payments |
id (varchar) |
passengerID → passengers(id), driverID → driver(id), rideId → ride(id) |
Payment processing | addPayment, getPayment |
passengerWallet |
id (auto) |
passenger_id → passengers(id) |
Wallet management | getWalletByPassenger, addWallet |
driverWallet |
id (auto) |
driverID → driver(id) |
Driver wallet | getWalletByDriver, addDriversWallet |
tokens |
id (auto) |
passengerID → passengers(id) |
Auth, FCM | addTokens, getTokensPassenger |
driverToken |
id (auto) |
captain_id → driver(id) |
Auth, FCM | addTokensDriver |
ratingDriver |
id (auto) |
driver_id → driver(id), passenger_id → passengers(id), ride_id → ride(id) |
Rating | addRateToDriver, getDriverRate |
ratingPassenger |
id (auto) |
passenger_id → passengers(id), driverID → driver(id), rideId → ride(id) |
Rating | addRateToPassenger |
promos |
id (auto) |
passengerID → passengers(id) |
Promotions | getPromos, addPromo |
notifications |
id (auto) |
passenger_id → passengers(id) |
Notifications | addNotificationPassenger, get |
notificationCaptain |
id (auto) |
driverID → driver(id) |
Notifications | addNotificationCaptain, get |
canecl |
id (auto) |
driverID → driver(id), passengerID → passengers(id), rideID → ride(id) |
Cancellations | addCancelRide |
complaint |
id (auto) |
ride_id → ride(id), passenger_id → passengers(id), driver_id → driver(id) |
Complaints | addComplaint, getComplaint |
tips |
id (auto) |
driverID → driver(id), passengerID → passengers(id), rideID → ride(id) |
Tips | addTips |
error |
id (auto) |
- | Error logging | addError |
CarRegistration |
id (auto) |
driverID → driver(id) |
Car documents | addRegisrationCar, get |
captains_car |
id (auto) |
driverID → driver(id) |
Car registration | - |
driver_documents |
id (auto) |
driverID → driver(id) |
Document upload | uploadImageType |
card_images |
id (auto) |
driverID → driver(id) |
ID card images | uploadImagePortrate |
imageProfileCaptain |
id (auto) |
driverID → driver(id) |
Profile pictures | - |
criminalDocuments |
id (auto) |
driverId → driver(id) |
Criminal records | - |
driver_behavior |
id |
driver_id → driver(id), trip_id → ride(id) |
Driver scoring | - |
driver_gifts |
id (auto) |
driver_id → driver(id) |
Driver gifts | driver_gift_check_page |
driver_health_assurance |
id (auto) |
driver_id → driver(id) |
Health insurance | - |
driver_orders |
id (auto) |
driver_id → driver(id) |
Order management | addDriverOrder, get |
driver_ride_scam |
id (auto) |
driverID → driver(id), passengerID → passengers(id), rideID → ride(id) |
Scam detection | adddriverScam |
email_verifications |
id (auto) |
- | Email verification | sendVerifyEmail, verifyEmail |
employee |
id (varchar) |
- | Employee management | employee_page |
helpCenter |
id (auto) |
driverID → driver(id) |
Help center | addhelpCenter |
invites |
id (auto) |
driverId → driver(id) |
Driver referrals | addInviteDriver |
invitesToPassengers |
id (auto) |
driverId → driver(id) |
Passenger referrals | addInvitationPassenger |
kazan |
id (auto) |
adminId → adminUser(id) |
Pricing | getKazanPercent |
login_attempts |
id (auto) |
- | Rate limiting | loginFirstTime |
login_attempts_drivers |
id (auto) |
- | Rate limiting | - |
mishwaritrips |
id (auto) |
driverId → driver(id), passengerId → passengers(id) |
Mishwari trips | addMishwari |
notesForDriverService |
id (auto) |
phone → driver(phone) |
Admin notes | - |
notesForPassengerService |
id (auto) |
phone → passengers(phone) |
Admin notes | - |
otp_verification_fingerPrint |
id |
- | OTP fingerprint | - |
packageInfo |
id (auto) |
- | App version | packageInfo |
palces11 |
id (auto) |
- | Saved places | getPlacesSyria |
passenger_blacklist |
id (auto) |
- | Passenger blacklist | blacklist_page |
passengerlocation |
id (auto) |
passengerId → passengers(id) |
Passenger GPS | addpassengerLocation |
payment_tokens |
id (auto) |
driverID → driver(id) |
Payment tokens | addPaymentTokenDriver |
payment_tokens_passenger |
id (auto) |
passengerId → passengers(id) |
Payment tokens | addPaymentTokenPassenger |
paymentsDriverPoints |
id (auto) |
driverID → driver(id) |
Points payments | addDriverPaymentPoints |
phone_verification |
id (auto) |
driverId → driver(id) |
Phone verification | otpmessage |
phone_verification_passenger |
id (auto) |
- | Phone verification | verifyOtpPassenger |
places / placesEgypt |
id (auto) |
- | Places data | savePlacesServer |
promptDriverIDEgypt |
id (auto) |
- | AI prompts | - |
ratingApp |
id (auto) |
- | App rating | - |
server_locations |
id (auto) |
- | Server area links | get_location_area_links |
smsSender |
id (auto) |
- | SMS sender ID | - |
token_verification* |
id (auto) |
- | Token verification | - |
user_referral_codes |
id (auto) |
user_id (polymorphic) |
Referral codes | get_unified_code |
unified_referrals |
id (auto) |
- | Unified referrals | add_unified_invite |
driver_cash_claims |
id (auto) |
driver_id → driver(id), referral_id → unified_referrals(id) |
Cash claims | - |
vehicles |
id (auto) |
driverID → driver(id) |
Vehicle info | - |
CarRegistration (ride DB) |
id (auto) |
driverID → driver(id) |
Car registration | addRegisrationCar |
adminUser |
id (auto) |
- | Admin users | addAdminUser |
api_keys |
id (auto) |
- | API keys | getApiKey |
blacklist_driver |
id (auto) |
driver_id → driver(id) |
Driver blacklist | blacklist_page |
carPlateEdit |
id (auto) |
driverId → driver(id) |
Plate edit requests | - |
carsToWork |
id (auto) |
- | Work car registration | - |
contactEgypt / contactSyria |
id (auto) |
driverId → driver(id) |
Contact sync | savePhones |
driversWantWork |
id (auto) |
- | Driver applications | - |
feedBack |
id (auto) |
passengerId → passengers(id) |
Feedback | addFeedBack |
hotels |
id |
- | Hotel data | - |
invoicesAdmin / invoice_records |
id (auto) |
- | Invoicing | - |
lisenceDetails |
id (varchar) |
driverID → driver(id) |
License details | - |
seferWallet |
id (auto) |
driverId → driver(id), passengerId → passengers(id) |
Sefer wallet | addSeferWallet |
test / testApp |
id (auto) |
- | Testing | - |
videos |
id (auto) |
- | Tutorial videos | - |
welcomeDriverCall |
id (auto) |
driverId → driver(id) |
Welcome calls | - |
write_argument_after_applied_from_background |
id (auto) |
- | Background argument storage | - |
Database: intaleq-ridesDB (Ride-specific Database)
This database mirrors many tables from intaleqDB1 for ride-specific operations. Tables present include:
ride,waitingRides,car_locations,car_tracks,driver,driverToken,payments,notifications,ratingDriver, etc.- Purpose: Isolated ride processing without affecting main DB performance.
Key Indexes
| Table | Index | Type | Columns |
|---|---|---|---|
car_locations |
idx_location_point |
SPATIAL | location_point |
car_locations |
idx_loc_status_time |
BTREE | status, updated_at, latitude, longitude |
waitingRides |
idx_location_status |
BTREE | start_lat, start_lng, status, created_at |
waitingRides |
idx_status_created |
BTREE | status, created_at |
waitingRides |
idx_passenger |
BTREE | passenger_id |
palces11 |
idx_fulltext_search |
FULLTEXT | name, name_ar, name_en, address, category |
driver |
national_number |
UNIQUE | national_number |
passengers |
phone |
UNIQUE | phone, email |
ride |
passengerfk |
BTREE | passenger_id |
ride |
driverfk |
BTREE | driver_id |
error |
idx_error_created_at |
BTREE | created_at |
error |
idx_error_phone |
BTREE | phone |
Referential Integrity
Most tables use InnoDB engine with foreign key relationships implied by business logic. Explicit FK constraints are minimal. Key relationships:
passengers (id) ──┬── ride (passenger_id)
├── waitingRides (passenger_id)
├── payments (passengerID)
├── passengerWallet (passenger_id)
├── tokens (passengerID)
├── ratingDriver (passenger_id)
├── ratingPassenger (passenger_id)
├── notifications (passenger_id)
└── feedBack (passengerId)
driver (id) ──┬── ride (driver_id)
├── car_locations (driver_id)
├── car_tracks (driver_id)
├── payments (driverID)
├── driverWallet (driverID)
├── driverToken (captain_id)
├── ratingDriver (driver_id)
├── ratingPassenger (driverID)
├── notificationCaptain (driverID)
├── driver_orders (driver_id)
└── driver_documents (driverID)