clarion-shared-types 1.0.115 → 1.0.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-enums.js +133 -0
- package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-enums.js.map +1 -0
- package/dist/cjs/modules/dispatch/index.js +23 -0
- package/dist/cjs/modules/dispatch/index.js.map +1 -0
- package/dist/cjs/modules/dispatch/interfaces/response-unit-dispatch.dto.js +3 -0
- package/dist/cjs/modules/dispatch/interfaces/response-unit-dispatch.dto.js.map +1 -0
- package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-display.util.js +198 -0
- package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-display.util.js.map +1 -0
- package/dist/cjs/modules/incident/enums/incident-actions.enum.js +2 -0
- package/dist/cjs/modules/incident/enums/incident-actions.enum.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js +6 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js +1 -0
- package/dist/cjs/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
- package/dist/cjs/modules/response-unit/enums/response-unit/response-capability.enum.js +28 -0
- package/dist/cjs/modules/response-unit/enums/response-unit/response-capability.enum.js.map +1 -0
- package/dist/cjs/modules/response-unit/index.js +1 -0
- package/dist/cjs/modules/response-unit/index.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/dispatch/enums/response-unit-dispatch-enums.js +130 -0
- package/dist/esm/modules/dispatch/enums/response-unit-dispatch-enums.js.map +1 -0
- package/dist/esm/modules/dispatch/index.js +7 -0
- package/dist/esm/modules/dispatch/index.js.map +1 -0
- package/dist/esm/modules/dispatch/interfaces/response-unit-dispatch.dto.js +2 -0
- package/dist/esm/modules/dispatch/interfaces/response-unit-dispatch.dto.js.map +1 -0
- package/dist/esm/modules/dispatch/utils/response-unit-dispatch-display.util.js +188 -0
- package/dist/esm/modules/dispatch/utils/response-unit-dispatch-display.util.js.map +1 -0
- package/dist/esm/modules/incident/enums/incident-actions.enum.js +2 -0
- package/dist/esm/modules/incident/enums/incident-actions.enum.js.map +1 -1
- package/dist/esm/modules/permission/enums/permission-actions.enum.js +6 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/esm/modules/permission/enums/permissions-moudule.enum.js +1 -0
- package/dist/esm/modules/permission/enums/permissions-moudule.enum.js.map +1 -1
- package/dist/esm/modules/response-unit/enums/response-unit/response-capability.enum.js +25 -0
- package/dist/esm/modules/response-unit/enums/response-unit/response-capability.enum.js.map +1 -0
- package/dist/esm/modules/response-unit/index.js +1 -0
- package/dist/esm/modules/response-unit/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/modules/dispatch/enums/response-unit-dispatch-enums.d.ts +109 -0
- package/dist/types/modules/dispatch/index.d.ts +3 -0
- package/dist/types/modules/dispatch/interfaces/response-unit-dispatch.dto.d.ts +166 -0
- package/dist/types/modules/dispatch/utils/response-unit-dispatch-display.util.d.ts +30 -0
- package/dist/types/modules/incident/enums/incident-actions.enum.d.ts +2 -0
- package/dist/types/modules/incident/intefaces/incident-category.d.ts +6 -0
- package/dist/types/modules/incident/intefaces/incident-type.d.ts +6 -0
- package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +3 -0
- package/dist/types/modules/permission/enums/permissions-moudule.enum.d.ts +1 -0
- package/dist/types/modules/response-unit/enums/response-unit/response-capability.enum.d.ts +22 -0
- package/dist/types/modules/response-unit/index.d.ts +1 -0
- package/dist/types/modules/response-unit/interfaces/response-unit/response-unit.d.ts +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { ResponseCapability, ResponseUnitAvailability } from '../../response-unit/enums/response-unit/response-capability.enum';
|
|
2
|
+
import { IncidentDispatchBlocker, ResponseCapabilityRequirementSource, ResponseUnitCapabilityMatch, ResponseUnitDispatchConstraint, ResponseUnitDispatchNotificationFailure, ResponseUnitDispatchNotificationStatus, ResponseUnitDispatchStatus, ResponseUnitDispatchTransitionSource, ResponseUnitDistanceBasis, ResponseUnitLocationFreshness, ResponseUnitLocationSource, ResponseUnitRecommendationReason, ResponseUnitRecommendationStatus } from '../enums/response-unit-dispatch-enums';
|
|
3
|
+
export interface ResponseCapabilityRequirementDto {
|
|
4
|
+
capabilities: ResponseCapability[];
|
|
5
|
+
source: ResponseCapabilityRequirementSource;
|
|
6
|
+
}
|
|
7
|
+
export interface ResponseUnitCandidateLocationDto {
|
|
8
|
+
source: ResponseUnitLocationSource;
|
|
9
|
+
freshness: ResponseUnitLocationFreshness;
|
|
10
|
+
latitude: number | null;
|
|
11
|
+
longitude: number | null;
|
|
12
|
+
recordedAt: string | null;
|
|
13
|
+
ageSeconds: number | null;
|
|
14
|
+
accuracyMetres: number | null;
|
|
15
|
+
}
|
|
16
|
+
export interface ResponseUnitTravelEstimateDto {
|
|
17
|
+
distanceMetres: number;
|
|
18
|
+
durationSeconds: number | null;
|
|
19
|
+
basis: ResponseUnitDistanceBasis;
|
|
20
|
+
trafficAware: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ResponseUnitCandidateDto {
|
|
23
|
+
responseUnitId: number;
|
|
24
|
+
name: string;
|
|
25
|
+
responseUnitType: string;
|
|
26
|
+
vehicleType: string | null;
|
|
27
|
+
registrationNumber: string | null;
|
|
28
|
+
controlCentreId: number | null;
|
|
29
|
+
sameControlCentre: boolean;
|
|
30
|
+
operationalStatus: string | null;
|
|
31
|
+
availability: ResponseUnitAvailability;
|
|
32
|
+
engagedIncidentId: number | null;
|
|
33
|
+
capabilities: ResponseCapability[];
|
|
34
|
+
capabilityMatch: ResponseUnitCapabilityMatch;
|
|
35
|
+
matchedCapabilities: ResponseCapability[];
|
|
36
|
+
location: ResponseUnitCandidateLocationDto;
|
|
37
|
+
distanceMetres: number | null;
|
|
38
|
+
travel: ResponseUnitTravelEstimateDto | null;
|
|
39
|
+
hasPhoneNumber: boolean;
|
|
40
|
+
dispatchable: boolean;
|
|
41
|
+
recommendable: boolean;
|
|
42
|
+
constraints: ResponseUnitDispatchConstraint[];
|
|
43
|
+
reasons: ResponseUnitRecommendationReason[];
|
|
44
|
+
rank: number | null;
|
|
45
|
+
}
|
|
46
|
+
export interface ResponseUnitRecommendationSummaryDto {
|
|
47
|
+
configuredUnits: number;
|
|
48
|
+
dispatchableUnits: number;
|
|
49
|
+
recommendableUnits: number;
|
|
50
|
+
engagedUnits: number;
|
|
51
|
+
unavailableUnits: number;
|
|
52
|
+
unitsWithoutLocation: number;
|
|
53
|
+
truncated: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface ResponseUnitDispatchUnitSnapshotDto {
|
|
56
|
+
availability: ResponseUnitAvailability;
|
|
57
|
+
operationalStatus: string | null;
|
|
58
|
+
capabilities: ResponseCapability[];
|
|
59
|
+
capabilityMatch: ResponseUnitCapabilityMatch;
|
|
60
|
+
sameControlCentre: boolean;
|
|
61
|
+
locationSource: ResponseUnitLocationSource;
|
|
62
|
+
locationFreshness: ResponseUnitLocationFreshness;
|
|
63
|
+
locationRecordedAt: string | null;
|
|
64
|
+
locationAgeSeconds: number | null;
|
|
65
|
+
distanceMetres: number | null;
|
|
66
|
+
hasPhoneNumber: boolean;
|
|
67
|
+
}
|
|
68
|
+
export interface ResponseUnitDispatchRecommendationSnapshotDto {
|
|
69
|
+
generatedAt: string;
|
|
70
|
+
status: ResponseUnitRecommendationStatus;
|
|
71
|
+
recommendedResponseUnitId: number | null;
|
|
72
|
+
ranked: Array<{
|
|
73
|
+
responseUnitId: number;
|
|
74
|
+
rank: number;
|
|
75
|
+
distanceMetres: number | null;
|
|
76
|
+
capabilityMatch: ResponseUnitCapabilityMatch;
|
|
77
|
+
locationFreshness: ResponseUnitLocationFreshness;
|
|
78
|
+
}>;
|
|
79
|
+
requiredCapabilities: ResponseCapability[];
|
|
80
|
+
requirementSource: ResponseCapabilityRequirementSource;
|
|
81
|
+
liveTrackingAvailable: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface ResponseUnitDispatchNotificationStateDto {
|
|
84
|
+
channel: 'SMS';
|
|
85
|
+
status: ResponseUnitDispatchNotificationStatus;
|
|
86
|
+
failureReason: ResponseUnitDispatchNotificationFailure | null;
|
|
87
|
+
/** Masked (+2547******78). */
|
|
88
|
+
recipient: string | null;
|
|
89
|
+
attempts: number;
|
|
90
|
+
requestedAt: string | null;
|
|
91
|
+
resultAt: string | null;
|
|
92
|
+
providerCode: string | null;
|
|
93
|
+
}
|
|
94
|
+
/** One response unit sent to one incident. */
|
|
95
|
+
export interface IncidentResponseUnitDispatchDto {
|
|
96
|
+
id: number;
|
|
97
|
+
reference: string;
|
|
98
|
+
incidentId: number;
|
|
99
|
+
organizationId: number;
|
|
100
|
+
controlCentreId: number | null;
|
|
101
|
+
responseUnitId: number;
|
|
102
|
+
responseUnitName: string;
|
|
103
|
+
responseUnitType: string | null;
|
|
104
|
+
responseUnitControlCentreId: number | null;
|
|
105
|
+
status: ResponseUnitDispatchStatus;
|
|
106
|
+
dispatchedByUserId: number;
|
|
107
|
+
dispatchedAt: string;
|
|
108
|
+
wasRecommended: boolean;
|
|
109
|
+
recommendedResponseUnitId: number | null;
|
|
110
|
+
shownRecommendedResponseUnitId: number | null;
|
|
111
|
+
overrideReason: string | null;
|
|
112
|
+
notes: string | null;
|
|
113
|
+
distanceMetres: number | null;
|
|
114
|
+
unitSnapshot: ResponseUnitDispatchUnitSnapshotDto;
|
|
115
|
+
recommendationSnapshot: ResponseUnitDispatchRecommendationSnapshotDto | null;
|
|
116
|
+
statusChangedAt: string;
|
|
117
|
+
statusChangedByUserId: number | null;
|
|
118
|
+
statusSource: ResponseUnitDispatchTransitionSource;
|
|
119
|
+
statusReason: string | null;
|
|
120
|
+
acknowledgedAt: string | null;
|
|
121
|
+
enRouteAt: string | null;
|
|
122
|
+
onSceneAt: string | null;
|
|
123
|
+
completedAt: string | null;
|
|
124
|
+
cancelledAt: string | null;
|
|
125
|
+
notification: ResponseUnitDispatchNotificationStateDto;
|
|
126
|
+
createdAt: string;
|
|
127
|
+
updatedAt: string;
|
|
128
|
+
}
|
|
129
|
+
/** `GET /api/incidents/:id/response-unit-recommendation`. */
|
|
130
|
+
export interface ResponseUnitRecommendationDto {
|
|
131
|
+
incidentId: number;
|
|
132
|
+
organizationId: number;
|
|
133
|
+
controlCentreId: number | null;
|
|
134
|
+
generatedAt: string;
|
|
135
|
+
status: ResponseUnitRecommendationStatus;
|
|
136
|
+
incidentBlockers: IncidentDispatchBlocker[];
|
|
137
|
+
requirement: ResponseCapabilityRequirementDto;
|
|
138
|
+
recommended: ResponseUnitCandidateDto | null;
|
|
139
|
+
alternatives: ResponseUnitCandidateDto[];
|
|
140
|
+
otherUnits: ResponseUnitCandidateDto[];
|
|
141
|
+
activeDispatches: IncidentResponseUnitDispatchDto[];
|
|
142
|
+
summary: ResponseUnitRecommendationSummaryDto;
|
|
143
|
+
incidentLocationAvailable: boolean;
|
|
144
|
+
liveTrackingAvailable: boolean;
|
|
145
|
+
travelTimeEnabled: boolean;
|
|
146
|
+
}
|
|
147
|
+
/** `POST /api/incidents/:id/response-unit-dispatches` body. Send an Idempotency-Key header with it. */
|
|
148
|
+
export interface DispatchResponseUnitRequest {
|
|
149
|
+
responseUnitId: number;
|
|
150
|
+
/** The unit the screen showed as recommended. */
|
|
151
|
+
recommendedResponseUnitId?: number | null;
|
|
152
|
+
/** Optional: why another unit than the recommended one. */
|
|
153
|
+
overrideReason?: string;
|
|
154
|
+
notes?: string;
|
|
155
|
+
}
|
|
156
|
+
/** `POST /api/incidents/:id/response-unit-dispatches` response. */
|
|
157
|
+
export interface DispatchResponseUnitResultDto {
|
|
158
|
+
dispatch: IncidentResponseUnitDispatchDto;
|
|
159
|
+
/** A repeat of an earlier request (same Idempotency-Key): nothing was sent again. */
|
|
160
|
+
replayed: boolean;
|
|
161
|
+
}
|
|
162
|
+
/** `POST /api/incidents/:id/response-unit-dispatches/:dispatchId/status` body. */
|
|
163
|
+
export interface UpdateResponseUnitDispatchStatusRequest {
|
|
164
|
+
status: ResponseUnitDispatchStatus;
|
|
165
|
+
reason?: string;
|
|
166
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ResponseCapability, ResponseUnitAvailability } from '../../response-unit/enums/response-unit/response-capability.enum';
|
|
2
|
+
import { IncidentDispatchBlocker, ResponseUnitDispatchConstraint, ResponseUnitDispatchNotificationFailure, ResponseUnitDispatchNotificationStatus, ResponseUnitDispatchStatus } from '../enums/response-unit-dispatch-enums';
|
|
3
|
+
import { ResponseUnitCandidateDto } from '../interfaces/response-unit-dispatch.dto';
|
|
4
|
+
export declare const RESPONSE_CAPABILITY_LABELS: Readonly<Record<ResponseCapability, string>>;
|
|
5
|
+
export declare const RESPONSE_UNIT_AVAILABILITY_LABELS: Readonly<Record<ResponseUnitAvailability, string>>;
|
|
6
|
+
export declare const RESPONSE_UNIT_DISPATCH_STATUS_LABELS: Readonly<Record<ResponseUnitDispatchStatus, string>>;
|
|
7
|
+
/** Why a unit cannot go, or is not suggested - as the dispatcher reads it. */
|
|
8
|
+
export declare const RESPONSE_UNIT_DISPATCH_CONSTRAINT_LABELS: Readonly<Record<ResponseUnitDispatchConstraint, string>>;
|
|
9
|
+
export declare const INCIDENT_DISPATCH_BLOCKER_LABELS: Readonly<Record<IncidentDispatchBlocker, string>>;
|
|
10
|
+
export declare const RESPONSE_UNIT_DISPATCH_NOTIFICATION_STATUS_LABELS: Readonly<Record<ResponseUnitDispatchNotificationStatus, string>>;
|
|
11
|
+
export declare const RESPONSE_UNIT_DISPATCH_NOTIFICATION_FAILURE_LABELS: Readonly<Record<ResponseUnitDispatchNotificationFailure, string>>;
|
|
12
|
+
/** Where each dispatch may be moved next (forward only; steps may be skipped). */
|
|
13
|
+
export declare const RESPONSE_UNIT_DISPATCH_NEXT_STATUSES: Readonly<Record<ResponseUnitDispatchStatus, readonly ResponseUnitDispatchStatus[]>>;
|
|
14
|
+
export declare const ACTIVE_RESPONSE_UNIT_DISPATCH_STATUSES: readonly ResponseUnitDispatchStatus[];
|
|
15
|
+
export declare function isActiveResponseUnitDispatch(status: ResponseUnitDispatchStatus | string | null | undefined): boolean;
|
|
16
|
+
/** "850 m", "2.4 km", "38 km". */
|
|
17
|
+
export declare function formatDispatchDistance(metres: number | null | undefined): string;
|
|
18
|
+
/** "18 sec ago", "4 min ago", "2 h ago". */
|
|
19
|
+
export declare function formatDispatchAge(seconds: number | null | undefined): string;
|
|
20
|
+
/** "7 min", "1 h 05 min". */
|
|
21
|
+
export declare function formatDispatchDuration(seconds: number | null | undefined): string;
|
|
22
|
+
/** A candidate's position, as one short phrase: "Live 18 sec ago", "Live, out of date (6 min ago)", "Base location". */
|
|
23
|
+
export declare function describeCandidateLocation(candidate: ResponseUnitCandidateDto, ageSeconds?: number | null): string;
|
|
24
|
+
/**
|
|
25
|
+
* The "Recommended because" lines, from the reasons and the numbers behind
|
|
26
|
+
* them. Never the scoring - the facts it rests on, in the order it weighs them.
|
|
27
|
+
*/
|
|
28
|
+
export declare function explainRecommendation(candidate: ResponseUnitCandidateDto, ageSeconds?: number | null): string[];
|
|
29
|
+
/** The reasons a unit cannot go or is not suggested, as labels. */
|
|
30
|
+
export declare function describeCandidateConstraints(candidate: ResponseUnitCandidateDto): string[];
|
|
@@ -7,6 +7,8 @@ export declare enum IncidentActions {
|
|
|
7
7
|
ON_HOLD = "On Hold",
|
|
8
8
|
ASSIGNED = "Assigned",
|
|
9
9
|
RESPONSE_UNIT_ASSIGNED = "Response Unit Assigned",
|
|
10
|
+
RESPONSE_UNIT_DISPATCHED = "Response Unit Dispatched",
|
|
11
|
+
RESPONSE_UNIT_DISPATCH_UPDATED = "Response Unit Dispatch Updated",
|
|
10
12
|
REOPENED = "Reopened",
|
|
11
13
|
REPORT_CREATED = "Report Created",
|
|
12
14
|
COMMENTED = "Commented",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ResponseCapability } from "../../response-unit/enums/response-unit/response-capability.enum";
|
|
1
2
|
import { IncidentType } from "./incident-type";
|
|
2
3
|
export interface IncidentCategory {
|
|
3
4
|
id?: number;
|
|
@@ -13,5 +14,10 @@ export interface IncidentCategory {
|
|
|
13
14
|
* `includeSystem=true`.
|
|
14
15
|
*/
|
|
15
16
|
isSystem?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Response capabilities this kind of incident needs; a unit with ANY of them
|
|
19
|
+
* is suitable. A type's list overrides its category's; empty = no requirement.
|
|
20
|
+
*/
|
|
21
|
+
responseCapabilities?: ResponseCapability[];
|
|
16
22
|
types?: IncidentType[];
|
|
17
23
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ResponseCapability } from "../../response-unit/enums/response-unit/response-capability.enum";
|
|
1
2
|
import { IncidentCategory } from "./incident-category";
|
|
2
3
|
export interface IncidentType {
|
|
3
4
|
id?: number;
|
|
@@ -14,5 +15,10 @@ export interface IncidentType {
|
|
|
14
15
|
* `includeSystem=true`.
|
|
15
16
|
*/
|
|
16
17
|
isSystem?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Response capabilities this kind of incident needs; a unit with ANY of them
|
|
20
|
+
* is suitable. A type's list overrides its category's; empty = no requirement.
|
|
21
|
+
*/
|
|
22
|
+
responseCapabilities?: ResponseCapability[];
|
|
17
23
|
category?: IncidentCategory;
|
|
18
24
|
}
|
|
@@ -53,6 +53,9 @@ export declare enum PermissionActions {
|
|
|
53
53
|
READ_TRACKING_HISTORY = "read:tracking-history",
|
|
54
54
|
READ_TRACKING_OPERATIONS = "read:tracking-operations",
|
|
55
55
|
MANAGE_TRACKING_OPERATIONS = "manage:tracking-operations",
|
|
56
|
+
READ_RESPONSE_UNIT_DISPATCH = "read:response-unit-dispatch",
|
|
57
|
+
CREATE_RESPONSE_UNIT_DISPATCH = "create:response-unit-dispatch",
|
|
58
|
+
UPDATE_RESPONSE_UNIT_DISPATCH = "update:response-unit-dispatch",
|
|
56
59
|
CREATE_SUPPORT_TICKET = "create:support-ticket",
|
|
57
60
|
READ_SUPPORT_TICKET = "read:support-ticket",
|
|
58
61
|
UPDATE_SUPPORT_TICKET = "update:support-ticket",
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What kind of emergency a response unit can answer. Mirrors
|
|
3
|
+
* grm-shared-library's ResponseCapability.
|
|
4
|
+
*
|
|
5
|
+
* A unit with no configured capabilities is treated as having what its type
|
|
6
|
+
* implies (an ambulance is MEDICAL_RESPONSE, a security vehicle
|
|
7
|
+
* SECURITY_RESPONSE), so configuring them is only needed where a unit differs
|
|
8
|
+
* from its type.
|
|
9
|
+
*/
|
|
10
|
+
export declare enum ResponseCapability {
|
|
11
|
+
MEDICAL_RESPONSE = "MEDICAL_RESPONSE",
|
|
12
|
+
SECURITY_RESPONSE = "SECURITY_RESPONSE",
|
|
13
|
+
FIRE_RESPONSE = "FIRE_RESPONSE",
|
|
14
|
+
ROADSIDE_ASSISTANCE = "ROADSIDE_ASSISTANCE"
|
|
15
|
+
}
|
|
16
|
+
/** Can a unit be sent right now - from its manual status and its active dispatches. */
|
|
17
|
+
export declare enum ResponseUnitAvailability {
|
|
18
|
+
AVAILABLE = "AVAILABLE",
|
|
19
|
+
ENGAGED = "ENGAGED",
|
|
20
|
+
UNAVAILABLE = "UNAVAILABLE",
|
|
21
|
+
INACTIVE = "INACTIVE"
|
|
22
|
+
}
|
|
@@ -10,6 +10,7 @@ export * from './interfaces/vehicle-unit/vehicle-type/security-vehicle';
|
|
|
10
10
|
export * from './interfaces/vehicle-unit/vehicle-type/fire-vehicle';
|
|
11
11
|
export * from './interfaces/vehicle-unit/vehicle-type/road-rescue-vehicle';
|
|
12
12
|
export * from './enums/response-unit/response-unit-type.enum';
|
|
13
|
+
export * from './enums/response-unit/response-capability.enum';
|
|
13
14
|
export * from './enums/person-unit/person-unit-category.enum';
|
|
14
15
|
export * from './enums/person-unit/person-unit-status.enum';
|
|
15
16
|
export * from './enums/vehicle-unit/vehicle-unit-ownership.enum';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MapAddress, MapLocation } from "../../../common";
|
|
2
2
|
import { ResponseUnitType } from "../../enums/response-unit/response-unit-type.enum";
|
|
3
|
+
import { ResponseCapability } from "../../enums/response-unit/response-capability.enum";
|
|
3
4
|
export interface ResponseUnit {
|
|
4
5
|
id: number;
|
|
5
6
|
name: string;
|
|
@@ -11,6 +12,8 @@ export interface ResponseUnit {
|
|
|
11
12
|
name: string;
|
|
12
13
|
address: MapAddress;
|
|
13
14
|
};
|
|
15
|
+
/** Configured capabilities; empty = derived from the unit's type. */
|
|
16
|
+
capabilities?: ResponseCapability[];
|
|
14
17
|
controlCentreId: number;
|
|
15
18
|
organizationId: number;
|
|
16
19
|
createdAt?: Date;
|