Units
A unit is a callsign that can be dispatched:MO12, TP 21, LA301.
Units are never deleted. A unit with no crew is
OFF_DUTY, and its callsign can be brought back into service later.
Crew
A unit’s crew is a list of Argus users, not names typed into a box.- A crew member is an active staff member on an active account.
- A user can crew one unit at a time. The database enforces this.
- A unit carries at most eight crew.
- Each membership records when it began and ended.
identifieris a snapshot of the person’s display name when they joined. GET /api/cad/units/{id}/crewreturns the full membership history, including people who have left.
crew.
Ways onto a unit
Booking on with the callsign of an off-duty, empty unit reuses that unit, provided the agency and type match. If the callsign is already operational, the answer is 409: join it instead.
Ways off a unit
- Book off,
POST /api/cad/me/unit/book-off, ends the caller’s own membership. It needs no permission beyond being signed in and being on the unit, so someone whose role has been removed can still leave. - Control can remove a member by editing the crew list, or end every membership by setting the unit
OFF_DUTY.
OFF_DUTY and is withdrawn from any incident it was assigned to.
Status
Status and assignment always agree. A unit is on an incident exactly when its status is
ASSIGNED, EN_ROUTE or ON_SCENE. The database enforces this, so no request can leave a unit “available” while still attached to an incident.
Who may set what
So, for a crew:
- Control assigns incidents. There is no way to self-assign.
- A crew cannot clear its own incident. Asking for
AVAILABLEwhile assigned returns409 CAD_CONFLICT. - While assigned, a crew moves between
EN_ROUTEandON_SCENE. While unassigned, betweenAVAILABLE,BUSYandUNAVAILABLE. - A status applies to the whole unit, not to one member.
AVAILABLE, crewed, unassigned unit can be dispatched.
What a crew’s client needs
GET /api/cad/me/unit returns everything an MDT shows: the unit, its crew, its status, and the full incident it is assigned to, including Control’s notes. It returns null when the caller is not booked on.
Keep the unit’s latest version. Every self-service change sends it back.