Sixième Étoile — Documentation

Mission Lifecycle

The complete lifecycle of a mission in Sixième Étoile — from creation through completion, including the mission stepper, timing, and driver assignment.

What Is a Mission?

A Mission (course) is the atomic operational unit in Sixième Étoile. It represents a single trip to be executed — with a defined pickup location, drop-off location, pickup time, and assigned driver.

Missions are born from quotes: when a quote is accepted and an Order is created, one mission is generated per transport service line (Transfer, Excursion, Dispo, or Off-grid). Supplementary fee lines and discount lines do not produce missions.

Internal Missions

A mission's quoteId field is nullable. When an operator creates an internal task — for example, repositioning a vehicle, a staff transfer, or a maintenance run — the mission is created without any associated quote. These internal missions (quoteId = null) are fully tracked in the pipeline and stepper in the same way as client-facing missions, but they do not appear in any client-facing invoice or portal.


Mission Timing

Each mission carries two key timestamps:

FieldDescription
pickupAtScheduled pickup date and time
estimatedEndAtCalculated end time: pickupAt + tripAnalysis.totalDurationMinutes

The [pickupAt, estimatedEndAt] window is the interval the dispatch system uses to check driver availability. If a driver already has a mission with an overlapping window, a conflict warning is displayed during assignment. The system does not block the assignment outright — it warns the operator, who can proceed or choose a different driver.


Mission Status Lifecycle

StatusDescriptionTriggered by
PENDING_ASSIGNMENTMission created; no driver assigned yetSystem (automatic, on order creation)
ASSIGNEDDriver assigned; awaiting driver confirmationOperator (dispatch action)
ACCEPTED_BY_DRIVERDriver confirmed the mission in the driver appDriver (mobile app)
IN_PROGRESSDriver has started the tripDriver (mobile app) or operator (manual)
COMPLETEDTrip successfully finishedDriver (mobile app) or operator (manual)
CANCELLEDMission cancelledOperator
NO_SHOWClient did not appear at the pickup pointOperator
PENDING_ASSIGNMENT

       ▼ (driver assigned)
   ASSIGNED

       ▼ (driver confirms)
ACCEPTED_BY_DRIVER

       ▼ (trip starts)
   IN_PROGRESS

       ├──▶ COMPLETED
       ├──▶ CANCELLED
       └──▶ NO_SHOW

COMPLETED, CANCELLED, and NO_SHOW are all terminal statuses. Once reached, the mission cannot advance further without a manual override (see Manual Status Updates).


The Mission Stepper

The Mission Stepper (screen D-03) is the operator interface for progressing a mission step by step from the back-office. It is accessible from the Mission Detail panel inside the Order Detail view.

The stepper presents the current mission state and the available actions the operator can take:

Stepper Steps

  1. Assign driver — select a driver from the dispatch panel; the system checks the [pickupAt, estimatedEndAt] window for conflicts
  2. Awaiting confirmation — the driver receives a push notification in the driver app; the stepper shows a "waiting" indicator
  3. Confirmed — driver has accepted; the stepper advances to show departure details
  4. In progress — operator or driver marks departure; live tracking becomes active
  5. Completed — operator or driver confirms arrival and completion

Each step in the stepper can also be triggered from the driver mobile app. When the driver acts, the stepper in the back-office updates in real time via WebSocket push.

Stepper Behaviour for Internal Missions

The stepper behaves identically whether or not the mission has a quoteId. For internal missions the client-facing panels (linked quote, client notification) are simply hidden; all dispatch and tracking steps remain available.


Driver Assignment and Dispatch

Driver assignment happens either from the Mission Stepper or directly from the Dispatch Board. In both cases:

  1. The operator opens the assignment panel
  2. Available drivers are listed with their current status and any scheduling conflicts for the mission's [pickupAt, estimatedEndAt] window
  3. Selecting a driver and confirming sends a push notification to the driver's app and sets the mission to ASSIGNED

If a conflict is detected (another mission overlaps the window), a yellow warning banner is shown. The operator can acknowledge the conflict and assign anyway — useful for short gaps or when the driver has confirmed availability by phone.


Relationship Between an Order and Its Missions

RelationshipDetails
CardinalityOne order → one or more missions
Status derivationOrder status is derived from the aggregate of mission statuses
IndependenceEach mission can be individually assigned, reassigned, cancelled, or marked as no-show
Partial completionAn order moves to COMPLETED only when every mission reaches a terminal status

For example, if an order has three missions and two are COMPLETED but one is CANCELLED, the order moves to COMPLETED once the third is resolved (the CANCELLED mission counts as terminal).


Event History

Every status transition, driver assignment, reassignment, note update, and manual override is recorded in the mission event history, visible at the bottom of the Mission Detail panel. Each event entry shows:

  • Timestamp (UTC)
  • User who triggered the action (operator name or "Driver app" for driver-triggered events)
  • Previous status → new status
  • Optional note or reason text
Was this page helpful?

On this page