masaruk Logo

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 LabelEnum ValueNotes
نشطةACTIVEVisible in B2C web/mobile
غير نشطةINACTIVEHidden from public listings
ملغاهCANCELLEDAdmin/Provider action
منتهيةCOMPLETEDAuto-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 LabelEnum ValueNotes
مؤكدةCONFIRMEDPayment completed
قيد التنفيذPENDINGAwaiting payment or admin review (initial booking state)
ملغاهCANCELLEDCancellation from user/admin
مكتملةCOMPLETEDTrip finished (derived)
قادمةUPCOMINGDerived: 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 LabelEnumNotes
مكتملCOMPLETEDPayment captured
قيد التنفيذPENDINGWaiting for gateway
ملغاهCANCELLEDFailed 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 LabelEnum
في الرصيد الحالي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

فعالةغير فعالة
ArabicEnum
فعالةACTIVE
غير فعالةINACTIVE

Buses

نشطةغير نشطةتحت الصيانة
ArabicEnum
نشطةACTIVE
غير نشطةINACTIVE
تحت الصيانةUNDER_MAINTENANCE

8. Provider Lifecycle

UI Status Labels

فعالةمعلقةمرفوضة

Internal Enums

Arabic LabelEnumNotes
فعالةACTIVEApproved and can publish trips
معلقةSUSPENDEDDisabled by admin (temporary)
مرفوضةREJECTEDApplication denied
قيد المراجعةPENDING_REVIEWAwaiting 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 LabelEnumNotes
نشطةACTIVECurrently running and visible
متوقفة مؤقتاًPAUSEDManually paused by provider
منتهيةENDEDBudget exhausted or end_date passed
مجدولةSCHEDULEDWaiting 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

EntityCore StatusesKey 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