Skip to main content

Groups & Stations

Groups organize department personnel and serve as station locations. The module is managed by the GroupsController.

Group List

Authorization: GenericGroup_View policy

The index page displays all department groups with the option to create new groups (subject to plan limits via CanDepartmentAddNewGroup).

Creating Groups

Authorization: GenericGroup_Create policy

Group Fields

FieldRequiredDescription
Group NameYesDisplay name for the group
Group TypeYesRegular group or Station type
Parent GroupNoHierarchical parent group
MembersNoPersonnel to assign to this group

Station Group Requirements

When creating a Station type group, at least one of the following is required:

  • Physical address — Full street address
  • GPS coordinates — Latitude and longitude
  • What3Words — Three-word location code

Printer Configuration

Station groups can optionally be configured with PrinterNet integration:

  • API key (stored encrypted using Symmetric Encryption)
  • Printer selection
  • Enables automatic dispatch printing at the station

Dispatch/Message Email

Each group can have a generated dispatch or message email address for external integrations.

Member Assignment Rules

  • A user can only belong to one group at a time
  • The system validates that selected members are not already assigned to another group
  • Members are added as DepartmentGroupMember entries

Creation Process

  1. Validates member uniqueness (no user in multiple groups)
  2. Validates station address/coordinates for station type
  3. Saves group and member assignments
  4. Configures printer if specified
  5. Fires AuditEvent (GroupAdded)

Editing Groups

Authorization: GenericGroup_Update policy + CanUserEditDepartmentGroup runtime check

Editing supports:

  • Changing group name and parent
  • Adding/removing members (diff-based)
  • Updating address, GPS coordinates, or What3Words
  • Modifying printer configuration

Fires AuditEvent (GroupChanged).

Deleting Groups

Authorization: GenericGroup_Delete policy

Cascade Protection

A group cannot be deleted if it has:

  • Child groups
  • Assigned users
  • Assigned units
  • Referenced shifts

The delete confirmation page shows counts for each of these dependencies.

Uses IDeleteService.DeleteGroupAsync when deletion is allowed. Fires AuditEvent (GroupRemoved).

Geofencing

Authorization: GenericGroup_Update policy

Station groups support response area geofencing:

Viewing/Editing Geofences

  • Opens a map editor centered on the department's configured coordinates
  • Allows drawing polygon geofences
  • Supports custom geofence colors

Saving Geofences

The SaveGeofence endpoint accepts:

  • Geofence color (hex)
  • Polygon coordinate data (GeoJSON-compatible)

Returns a JSON success/failure result.

Data Endpoints

EndpointParametersPurpose
GetMembersForGroupgroupId, includeAdmins, includeNormalGroup members filtered by admin/normal status
GetAllGroupsAll groups (id, name)
GetGroupsForCallGridGroups with member counts for dispatch

Interactions with Other Modules

ModuleInteraction
PersonnelPersonnel belong to groups; group admins manage their members
UnitsUnits are assigned to station groups
DispatchGroups are dispatch targets; station locations used for routing
ShiftsShifts reference groups for scheduling
MappingStation locations displayed on maps; geofences shown as overlays
ReportsGroup data used in staffing and personnel reports
DepartmentPrinter and email configuration per group
NotificationsGroup-level availability alerts
SecurityGroup admin permissions affect personnel management