Statuses & Lifecycles
Entity statuses and lifecycle transitions
1. Purpose
This document formalizes all status values (as seen in UI) and defines their internal enums, valid transitions, triggering events, and affected modules.
Arabic labels from the UI are preserved exactly as shown. Do not standardize Arabic text. Standardization happens only in the technical enum names.
2. Trip Lifecycle
UI Status Labels
نشطةغير نشطةملغاهمنتهية
Internal Enums
| Arabic Label | Enum Value | Notes |
|---|---|---|
| نشطة | ACTIVE | Visible in B2C web/mobile |
| غير نشطة | INACTIVE | Hidden from public listings |
| ملغاه | CANCELLED | Admin/Provider action |
| منتهية | COMPLETED | Auto-derived when end_date < today |
Valid Transitions
INACTIVE → ACTIVE (Provider enables trip) ACTIVE → INACTIVE (Provider disables trip) ACTIVE → CANCELLED (Admin/Provider cancels trip) ACTIVE/INACTIVE → COMPLETED (Automatic by date)
Trigger Events
- Provider toggles status
- Admin cancellation
- Cron-based/automatic check of trip dates
Affected Modules
- B2C Trip Listing
- Trip Details Page
- Provider Trip Management
- Ad Campaign Creation (only ACTIVE trips)
- Booking Flow (cannot book INACTIVE/CANCELLED trips)
3. Booking Lifecycle
UI Status Labels
مؤكدةقيد التنفيذملغاهمكتملةقادمة
ملاحظة: "قادمة" و "مكتملة" هي تسميات واجهة B2C Mobile Web، وهي مشتقة بناءً على التاريخ وليس حالة النظام الأساسية.
Internal Enums
| Arabic Label | Enum Value | Notes |
|---|---|---|
| مؤكدة | CONFIRMED | Payment completed |
| قيد التنفيذ | PENDING | Awaiting payment or admin review (initial booking state) |
| ملغاه | CANCELLED | Cancellation from user/admin |
| مكتملة | COMPLETED | Trip finished (derived) |
| قادمة | UPCOMING | Derived: start_date > now |
System-Level Interpretation
If payment_status = COMPLETED → booking_status = CONFIRMED If travel_date < today → booking_status = COMPLETED If travel_date > today → booking_status = UPCOMING If user/admin cancels → CANCELLED If still in payment flow → PENDING
Valid Transitions
PENDING → CONFIRMED (Successful payment) PENDING → CANCELLED (User/admin cancellation) CONFIRMED → COMPLETED (Automatic when trip ends) CONFIRMED → CANCELLED (Manual cancellation + refund rules)
Trigger Events
- Payment success (HyperPay / STC Pay / Apple Pay)
- User cancellation (if allowed)
- Admin cancellation
- Automatic date check (trip end date)
Affected Modules
- حجوزاتي
- إدارة الحجوزات
- التقارير المالية
- تقييم الرحلة (only COMPLETED bookings)
4. Payment Lifecycle
UI Status Labels
مكتململغاهقيد التنفيذ
Directly visible in: إدارة الحجوزات، التقارير المالية، الدفع
Internal Enums
| Arabic Label | Enum | Notes |
|---|---|---|
| مكتمل | COMPLETED | Payment captured |
| قيد التنفيذ | PENDING | Waiting for gateway |
| ملغاه | CANCELLED | Failed or refunded |
Valid Transitions
PENDING → COMPLETED (Gateway callback OK) PENDING → CANCELLED (Gateway failure or timeout) COMPLETED → CANCELLED (Refund action by admin)
Trigger Events
- Payment gateway callback
- Admin refund action
- Failed validation from provider
6. Financial Record Lifecycle
UI Labels (التقارير المالية)
في الرصيد الحاليتم التحويلمسترجع
Internal Enums
| Arabic Label | Enum |
|---|---|
| في الرصيد الحالي | IN_CURRENT_BALANCE |
| تم التحويل | TRANSFERRED |
| مسترجع | REFUNDED |
Valid Transitions
IN_CURRENT_BALANCE → TRANSFERRED (Payout to provider) IN_CURRENT_BALANCE → REFUNDED (Refund to user) TRANSFERRED → REFUNDED (Rare, requires manual correction)
Trigger Events
- Financial team payout
- Booking cancellation (refund)
- Automated settlement process
7. Trip Resources Lifecycle (Hotels / Buses / Rest Stops)
Hotels / Rest Stops
فعالةغير فعالة
| Arabic | Enum |
|---|---|
| فعالة | ACTIVE |
| غير فعالة | INACTIVE |
Buses
نشطةغير نشطةتحت الصيانة
| Arabic | Enum |
|---|---|
| نشطة | ACTIVE |
| غير نشطة | INACTIVE |
| تحت الصيانة | UNDER_MAINTENANCE |
8. Provider Lifecycle
UI Status Labels
فعالةمعلقةمرفوضة
Internal Enums
| Arabic Label | Enum | Notes |
|---|---|---|
| فعالة | ACTIVE | Approved and can publish trips |
| معلقة | SUSPENDED | Disabled by admin (temporary) |
| مرفوضة | REJECTED | Application denied |
| قيد المراجعة | PENDING_REVIEW | Awaiting admin approval |
Valid Transitions
PENDING_REVIEW → ACTIVE (Admin approves application) PENDING_REVIEW → REJECTED (Admin denies application) ACTIVE → SUSPENDED (Admin suspends provider) SUSPENDED → ACTIVE (Admin reinstates provider)
5. Ad Campaign Lifecycle
UI Status Labels
نشطةمتوقفة مؤقتاًمنتهيةمجدولة
Internal Enums
| Arabic Label | Enum | Notes |
|---|---|---|
| نشطة | ACTIVE | Currently running and visible |
| متوقفة مؤقتاً | PAUSED | Manually paused by provider |
| منتهية | ENDED | Budget exhausted or end_date passed |
| مجدولة | SCHEDULED | Waiting to start (start_date in future) |
Valid Transitions
SCHEDULED → ACTIVE (When start_date arrives) ACTIVE → PAUSED (Provider pauses campaign) PAUSED → ACTIVE (Provider resumes campaign) ACTIVE → ENDED (Budget finished or end_date passed) SCHEDULED → ENDED (Deleted before start)
9. Status Summary Table
| Entity | Core Statuses | Key Trigger |
|---|---|---|
| Trip | ACTIVEINACTIVECANCELLED | Provider toggle / Admin action |
| Booking | PENDINGCONFIRMEDCANCELLED | Payment status |
| Payment | PENDINGCOMPLETEDCANCELLED | Gateway callback |
| Provider | ACTIVEPENDINGREJECTED | Admin approval |
| Ad Campaign | ACTIVEPAUSEDENDED | Date / Budget / Manual |