grm-shared-library 1.1.241 → 1.1.243

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.
Files changed (95) hide show
  1. package/dist/cjs/index.js +1 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/modules/dispatch/index.js +1 -0
  4. package/dist/cjs/modules/dispatch/index.js.map +1 -1
  5. package/dist/cjs/modules/dispatch/interfaces/dispatch-analytics.js +3 -0
  6. package/dist/cjs/modules/dispatch/interfaces/dispatch-analytics.js.map +1 -0
  7. package/dist/cjs/modules/permission/data/permissions.data.js +9 -0
  8. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  9. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +21 -0
  10. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  11. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  12. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  13. package/dist/cjs/modules/responder/constants/responder.const.js +124 -0
  14. package/dist/cjs/modules/responder/constants/responder.const.js.map +1 -0
  15. package/dist/cjs/modules/responder/dtos/responder.dto.js +582 -0
  16. package/dist/cjs/modules/responder/dtos/responder.dto.js.map +1 -0
  17. package/dist/cjs/modules/responder/enums/responder.enums.js +142 -0
  18. package/dist/cjs/modules/responder/enums/responder.enums.js.map +1 -0
  19. package/dist/cjs/modules/responder/index.js +29 -0
  20. package/dist/cjs/modules/responder/index.js.map +1 -0
  21. package/dist/cjs/modules/responder/interfaces/responder-dispatch.js +3 -0
  22. package/dist/cjs/modules/responder/interfaces/responder-dispatch.js.map +1 -0
  23. package/dist/cjs/modules/responder/interfaces/responder-policy.js +3 -0
  24. package/dist/cjs/modules/responder/interfaces/responder-policy.js.map +1 -0
  25. package/dist/cjs/modules/responder/interfaces/responder.js +3 -0
  26. package/dist/cjs/modules/responder/interfaces/responder.js.map +1 -0
  27. package/dist/cjs/modules/responder/utils/responder.util.js +65 -0
  28. package/dist/cjs/modules/responder/utils/responder.util.js.map +1 -0
  29. package/dist/cjs/modules/role/data/roles.data.js +30 -4
  30. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  31. package/dist/cjs/modules/tracking/dtos/units-analytics-query.dto.js +58 -0
  32. package/dist/cjs/modules/tracking/dtos/units-analytics-query.dto.js.map +1 -0
  33. package/dist/cjs/modules/tracking/enums/tracking-provider-code.enum.js +8 -0
  34. package/dist/cjs/modules/tracking/enums/tracking-provider-code.enum.js.map +1 -1
  35. package/dist/cjs/modules/tracking/index.js +3 -0
  36. package/dist/cjs/modules/tracking/index.js.map +1 -1
  37. package/dist/cjs/modules/tracking/interfaces/tracking-analytics.js +14 -0
  38. package/dist/cjs/modules/tracking/interfaces/tracking-analytics.js.map +1 -0
  39. package/dist/esm/index.js +1 -0
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/modules/dispatch/index.js +1 -0
  42. package/dist/esm/modules/dispatch/index.js.map +1 -1
  43. package/dist/esm/modules/dispatch/interfaces/dispatch-analytics.js +2 -0
  44. package/dist/esm/modules/dispatch/interfaces/dispatch-analytics.js.map +1 -0
  45. package/dist/esm/modules/permission/data/permissions.data.js +9 -0
  46. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  47. package/dist/esm/modules/permission/enums/permission-actions.enum.js +21 -0
  48. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  49. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  50. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  51. package/dist/esm/modules/responder/constants/responder.const.js +121 -0
  52. package/dist/esm/modules/responder/constants/responder.const.js.map +1 -0
  53. package/dist/esm/modules/responder/dtos/responder.dto.js +560 -0
  54. package/dist/esm/modules/responder/dtos/responder.dto.js.map +1 -0
  55. package/dist/esm/modules/responder/enums/responder.enums.js +139 -0
  56. package/dist/esm/modules/responder/enums/responder.enums.js.map +1 -0
  57. package/dist/esm/modules/responder/index.js +13 -0
  58. package/dist/esm/modules/responder/index.js.map +1 -0
  59. package/dist/esm/modules/responder/interfaces/responder-dispatch.js +2 -0
  60. package/dist/esm/modules/responder/interfaces/responder-dispatch.js.map +1 -0
  61. package/dist/esm/modules/responder/interfaces/responder-policy.js +2 -0
  62. package/dist/esm/modules/responder/interfaces/responder-policy.js.map +1 -0
  63. package/dist/esm/modules/responder/interfaces/responder.js +2 -0
  64. package/dist/esm/modules/responder/interfaces/responder.js.map +1 -0
  65. package/dist/esm/modules/responder/utils/responder.util.js +59 -0
  66. package/dist/esm/modules/responder/utils/responder.util.js.map +1 -0
  67. package/dist/esm/modules/role/data/roles.data.js +29 -3
  68. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  69. package/dist/esm/modules/tracking/dtos/units-analytics-query.dto.js +54 -0
  70. package/dist/esm/modules/tracking/dtos/units-analytics-query.dto.js.map +1 -0
  71. package/dist/esm/modules/tracking/enums/tracking-provider-code.enum.js +8 -0
  72. package/dist/esm/modules/tracking/enums/tracking-provider-code.enum.js.map +1 -1
  73. package/dist/esm/modules/tracking/index.js +3 -0
  74. package/dist/esm/modules/tracking/index.js.map +1 -1
  75. package/dist/esm/modules/tracking/interfaces/tracking-analytics.js +13 -0
  76. package/dist/esm/modules/tracking/interfaces/tracking-analytics.js.map +1 -0
  77. package/dist/types/index.d.ts +1 -0
  78. package/dist/types/modules/dispatch/index.d.ts +1 -0
  79. package/dist/types/modules/dispatch/interfaces/dispatch-analytics.d.ts +158 -0
  80. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +4 -0
  81. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
  82. package/dist/types/modules/responder/constants/responder.const.d.ts +67 -0
  83. package/dist/types/modules/responder/dtos/responder.dto.d.ts +144 -0
  84. package/dist/types/modules/responder/enums/responder.enums.d.ts +128 -0
  85. package/dist/types/modules/responder/index.d.ts +7 -0
  86. package/dist/types/modules/responder/interfaces/responder-dispatch.d.ts +144 -0
  87. package/dist/types/modules/responder/interfaces/responder-policy.d.ts +55 -0
  88. package/dist/types/modules/responder/interfaces/responder.d.ts +113 -0
  89. package/dist/types/modules/responder/utils/responder.util.d.ts +24 -0
  90. package/dist/types/modules/role/data/roles.data.d.ts +7 -0
  91. package/dist/types/modules/tracking/dtos/units-analytics-query.dto.d.ts +17 -0
  92. package/dist/types/modules/tracking/enums/tracking-provider-code.enum.d.ts +9 -1
  93. package/dist/types/modules/tracking/index.d.ts +2 -0
  94. package/dist/types/modules/tracking/interfaces/tracking-analytics.d.ts +192 -0
  95. package/package.json +1 -1
@@ -0,0 +1,560 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
11
+ import { Transform, Type } from 'class-transformer';
12
+ import { ArrayMaxSize, ArrayMinSize, IsArray, IsBoolean, IsEnum, IsIn, IsInt, IsISO8601, IsNotEmpty, IsNumber, IsOptional, IsString, IsUUID, Max, MaxLength, Min, ValidateNested, } from 'class-validator';
13
+ import { ResponseUnitDispatchStatus } from '../../dispatch/enums/response-unit-dispatch-status.enum';
14
+ import { RESPONDER_FIELD_LIMITS, RESPONDER_SETTABLE_DISPATCH_STATUSES } from '../constants/responder.const';
15
+ import { ResponderArrivalMethod, ResponderDispatchListState, ResponderReportField, ResponderReportOutcome, } from '../enums/responder.enums';
16
+ const L = RESPONDER_FIELD_LIMITS;
17
+ const trimmed = ({ value }) => (typeof value === 'string' ? value.trim() : value);
18
+ // ── Duty ────────────────────────────────────────────────────────────────────
19
+ /** `POST /responder/duty` - go on duty with one of the caller's units. */
20
+ export class StartResponderDutyDto {
21
+ }
22
+ __decorate([
23
+ ApiProperty({ example: 812 }),
24
+ Type(() => Number),
25
+ IsInt(),
26
+ Min(1),
27
+ __metadata("design:type", Number)
28
+ ], StartResponderDutyDto.prototype, "responseUnitId", void 0);
29
+ /** `POST /responder/duty/end` - go off duty. Idempotent: ending no duty is not an error. */
30
+ export class EndResponderDutyDto {
31
+ }
32
+ __decorate([
33
+ ApiPropertyOptional({ maxLength: L.dutyEndReason }),
34
+ IsOptional(),
35
+ Transform(trimmed),
36
+ IsString(),
37
+ MaxLength(L.dutyEndReason),
38
+ __metadata("design:type", String)
39
+ ], EndResponderDutyDto.prototype, "reason", void 0);
40
+ /** `POST /response-units/:id/responders/:userId/end-duty` - the control room ends someone's duty. */
41
+ export class EndResponderDutyByControlCentreDto extends EndResponderDutyDto {
42
+ }
43
+ // ── Memberships (admin) ─────────────────────────────────────────────────────
44
+ /** `POST /response-units/:id/responders` - link a Responder account to a unit. */
45
+ export class AddResponseUnitResponderDto {
46
+ }
47
+ __decorate([
48
+ ApiProperty({ example: 1802 }),
49
+ Type(() => Number),
50
+ IsInt(),
51
+ Min(1),
52
+ __metadata("design:type", Number)
53
+ ], AddResponseUnitResponderDto.prototype, "userId", void 0);
54
+ // ── Dispatches ──────────────────────────────────────────────────────────────
55
+ /** `GET /responder/dispatches`. Newest first. */
56
+ export class ResponderDispatchListQueryDto {
57
+ }
58
+ __decorate([
59
+ ApiPropertyOptional({ enum: ResponderDispatchListState, default: ResponderDispatchListState.ACTIVE }),
60
+ IsOptional(),
61
+ IsEnum(ResponderDispatchListState),
62
+ __metadata("design:type", String)
63
+ ], ResponderDispatchListQueryDto.prototype, "state", void 0);
64
+ __decorate([
65
+ ApiPropertyOptional({ default: 1 }),
66
+ IsOptional(),
67
+ Type(() => Number),
68
+ IsInt(),
69
+ Min(1),
70
+ __metadata("design:type", Number)
71
+ ], ResponderDispatchListQueryDto.prototype, "page", void 0);
72
+ __decorate([
73
+ ApiPropertyOptional({ default: 20, maximum: L.dispatchPageSize }),
74
+ IsOptional(),
75
+ Type(() => Number),
76
+ IsInt(),
77
+ Min(1),
78
+ Max(L.dispatchPageSize),
79
+ __metadata("design:type", Number)
80
+ ], ResponderDispatchListQueryDto.prototype, "limit", void 0);
81
+ __decorate([
82
+ ApiPropertyOptional({ example: '#4821' }),
83
+ IsOptional(),
84
+ IsString(),
85
+ MaxLength(20),
86
+ __metadata("design:type", String)
87
+ ], ResponderDispatchListQueryDto.prototype, "search", void 0);
88
+ /** A position fix the phone took, sent as evidence with an action. */
89
+ export class ResponderLocationFixDto {
90
+ }
91
+ __decorate([
92
+ ApiProperty(),
93
+ Type(() => Number),
94
+ IsNumber({ allowNaN: false, allowInfinity: false }),
95
+ Min(-90),
96
+ Max(90),
97
+ __metadata("design:type", Number)
98
+ ], ResponderLocationFixDto.prototype, "latitude", void 0);
99
+ __decorate([
100
+ ApiProperty(),
101
+ Type(() => Number),
102
+ IsNumber({ allowNaN: false, allowInfinity: false }),
103
+ Min(-180),
104
+ Max(180),
105
+ __metadata("design:type", Number)
106
+ ], ResponderLocationFixDto.prototype, "longitude", void 0);
107
+ __decorate([
108
+ ApiPropertyOptional(),
109
+ IsOptional(),
110
+ Type(() => Number),
111
+ IsNumber({ allowNaN: false, allowInfinity: false }),
112
+ Min(0),
113
+ __metadata("design:type", Number)
114
+ ], ResponderLocationFixDto.prototype, "accuracyMetres", void 0);
115
+ __decorate([
116
+ ApiProperty(),
117
+ IsISO8601({ strict: true }),
118
+ __metadata("design:type", String)
119
+ ], ResponderLocationFixDto.prototype, "recordedAt", void 0);
120
+ /**
121
+ * `POST /responder/dispatches/:dispatchId/status` - acknowledge, set off,
122
+ * arrive, complete or decline.
123
+ *
124
+ * Idempotent by target: asking for the status the dispatch already has returns
125
+ * it unchanged (HTTP 200) instead of a conflict, so a retry after a lost
126
+ * response is safe. `clientActionId` is recorded with the change for the audit.
127
+ */
128
+ export class RespondToDispatchDto {
129
+ }
130
+ __decorate([
131
+ ApiProperty({ enum: RESPONDER_SETTABLE_DISPATCH_STATUSES }),
132
+ IsIn(RESPONDER_SETTABLE_DISPATCH_STATUSES),
133
+ __metadata("design:type", String)
134
+ ], RespondToDispatchDto.prototype, "status", void 0);
135
+ __decorate([
136
+ ApiProperty({ description: 'A uuid the app generates once per user action.' }),
137
+ IsUUID(),
138
+ __metadata("design:type", String)
139
+ ], RespondToDispatchDto.prototype, "clientActionId", void 0);
140
+ __decorate([
141
+ ApiPropertyOptional({ maxLength: L.statusReason }),
142
+ IsOptional(),
143
+ Transform(trimmed),
144
+ IsString(),
145
+ MaxLength(L.statusReason),
146
+ __metadata("design:type", String)
147
+ ], RespondToDispatchDto.prototype, "reason", void 0);
148
+ __decorate([
149
+ ApiPropertyOptional({ type: ResponderLocationFixDto }),
150
+ IsOptional(),
151
+ ValidateNested(),
152
+ Type(() => ResponderLocationFixDto),
153
+ __metadata("design:type", ResponderLocationFixDto)
154
+ ], RespondToDispatchDto.prototype, "location", void 0);
155
+ __decorate([
156
+ ApiPropertyOptional({ enum: ResponderArrivalMethod }),
157
+ IsOptional(),
158
+ IsEnum(ResponderArrivalMethod),
159
+ __metadata("design:type", String)
160
+ ], RespondToDispatchDto.prototype, "arrivalMethod", void 0);
161
+ // ── Reports ─────────────────────────────────────────────────────────────────
162
+ export class ResponderChecklistAnswerDto {
163
+ }
164
+ __decorate([
165
+ ApiProperty({ maxLength: L.reportChecklistItemId }),
166
+ IsString(),
167
+ IsNotEmpty(),
168
+ MaxLength(L.reportChecklistItemId),
169
+ __metadata("design:type", String)
170
+ ], ResponderChecklistAnswerDto.prototype, "itemId", void 0);
171
+ __decorate([
172
+ ApiProperty(),
173
+ IsBoolean(),
174
+ __metadata("design:type", Boolean)
175
+ ], ResponderChecklistAnswerDto.prototype, "checked", void 0);
176
+ /**
177
+ * `POST /responder/dispatches/:dispatchId/report` - submit, or amend, the
178
+ * response report. The first submission is idempotent on `clientReportId`; an
179
+ * amendment must name the `expectedVersion` it was edited from.
180
+ */
181
+ export class SubmitResponderReportDto {
182
+ }
183
+ __decorate([
184
+ ApiProperty({ description: 'A uuid the app generates once per report draft.' }),
185
+ IsUUID(),
186
+ __metadata("design:type", String)
187
+ ], SubmitResponderReportDto.prototype, "clientReportId", void 0);
188
+ __decorate([
189
+ ApiPropertyOptional(),
190
+ IsOptional(),
191
+ Type(() => Number),
192
+ IsInt(),
193
+ Min(1),
194
+ __metadata("design:type", Number)
195
+ ], SubmitResponderReportDto.prototype, "expectedVersion", void 0);
196
+ __decorate([
197
+ ApiProperty({ maxLength: L.reportSummary }),
198
+ Transform(trimmed),
199
+ IsString(),
200
+ IsNotEmpty(),
201
+ MaxLength(L.reportSummary),
202
+ __metadata("design:type", String)
203
+ ], SubmitResponderReportDto.prototype, "summary", void 0);
204
+ __decorate([
205
+ ApiPropertyOptional({ maxLength: L.reportActionsTaken }),
206
+ IsOptional(),
207
+ Transform(trimmed),
208
+ IsString(),
209
+ MaxLength(L.reportActionsTaken),
210
+ __metadata("design:type", String)
211
+ ], SubmitResponderReportDto.prototype, "actionsTaken", void 0);
212
+ __decorate([
213
+ ApiProperty({ enum: ResponderReportOutcome }),
214
+ IsEnum(ResponderReportOutcome),
215
+ __metadata("design:type", String)
216
+ ], SubmitResponderReportDto.prototype, "outcome", void 0);
217
+ __decorate([
218
+ ApiPropertyOptional({ maxLength: L.reportPersonsContacted }),
219
+ IsOptional(),
220
+ Transform(trimmed),
221
+ IsString(),
222
+ MaxLength(L.reportPersonsContacted),
223
+ __metadata("design:type", String)
224
+ ], SubmitResponderReportDto.prototype, "personsContacted", void 0);
225
+ __decorate([
226
+ ApiPropertyOptional({ maxLength: L.reportHandoverTo }),
227
+ IsOptional(),
228
+ Transform(trimmed),
229
+ IsString(),
230
+ MaxLength(L.reportHandoverTo),
231
+ __metadata("design:type", String)
232
+ ], SubmitResponderReportDto.prototype, "handoverTo", void 0);
233
+ __decorate([
234
+ ApiProperty(),
235
+ IsBoolean(),
236
+ __metadata("design:type", Boolean)
237
+ ], SubmitResponderReportDto.prototype, "followUpRequired", void 0);
238
+ __decorate([
239
+ ApiPropertyOptional({ maxLength: L.reportFollowUpNotes }),
240
+ IsOptional(),
241
+ Transform(trimmed),
242
+ IsString(),
243
+ MaxLength(L.reportFollowUpNotes),
244
+ __metadata("design:type", String)
245
+ ], SubmitResponderReportDto.prototype, "followUpNotes", void 0);
246
+ __decorate([
247
+ ApiPropertyOptional({ maxLength: L.reportRemarks }),
248
+ IsOptional(),
249
+ Transform(trimmed),
250
+ IsString(),
251
+ MaxLength(L.reportRemarks),
252
+ __metadata("design:type", String)
253
+ ], SubmitResponderReportDto.prototype, "remarks", void 0);
254
+ __decorate([
255
+ ApiPropertyOptional({ type: [ResponderChecklistAnswerDto] }),
256
+ IsOptional(),
257
+ IsArray(),
258
+ ArrayMaxSize(L.reportChecklistItems),
259
+ ValidateNested({ each: true }),
260
+ Type(() => ResponderChecklistAnswerDto),
261
+ __metadata("design:type", Array)
262
+ ], SubmitResponderReportDto.prototype, "checklist", void 0);
263
+ __decorate([
264
+ ApiPropertyOptional({ type: [Number] }),
265
+ IsOptional(),
266
+ IsArray(),
267
+ ArrayMaxSize(L.reportAttachments),
268
+ Type(() => Number),
269
+ IsInt({ each: true }),
270
+ Min(1, { each: true }),
271
+ __metadata("design:type", Array)
272
+ ], SubmitResponderReportDto.prototype, "attachmentIds", void 0);
273
+ // ── Positions ───────────────────────────────────────────────────────────────
274
+ export class ResponderPositionSampleDto {
275
+ }
276
+ __decorate([
277
+ ApiProperty(),
278
+ Type(() => Number),
279
+ IsNumber({ allowNaN: false, allowInfinity: false }),
280
+ Min(-90),
281
+ Max(90),
282
+ __metadata("design:type", Number)
283
+ ], ResponderPositionSampleDto.prototype, "latitude", void 0);
284
+ __decorate([
285
+ ApiProperty(),
286
+ Type(() => Number),
287
+ IsNumber({ allowNaN: false, allowInfinity: false }),
288
+ Min(-180),
289
+ Max(180),
290
+ __metadata("design:type", Number)
291
+ ], ResponderPositionSampleDto.prototype, "longitude", void 0);
292
+ __decorate([
293
+ ApiPropertyOptional(),
294
+ IsOptional(),
295
+ Type(() => Number),
296
+ IsNumber({ allowNaN: false, allowInfinity: false }),
297
+ Min(0),
298
+ __metadata("design:type", Number)
299
+ ], ResponderPositionSampleDto.prototype, "accuracyMetres", void 0);
300
+ __decorate([
301
+ ApiPropertyOptional(),
302
+ IsOptional(),
303
+ Type(() => Number),
304
+ IsNumber({ allowNaN: false, allowInfinity: false }),
305
+ __metadata("design:type", Number)
306
+ ], ResponderPositionSampleDto.prototype, "altitudeMetres", void 0);
307
+ __decorate([
308
+ ApiPropertyOptional(),
309
+ IsOptional(),
310
+ Type(() => Number),
311
+ IsNumber({ allowNaN: false, allowInfinity: false }),
312
+ Min(0),
313
+ __metadata("design:type", Number)
314
+ ], ResponderPositionSampleDto.prototype, "speedMetresPerSecond", void 0);
315
+ __decorate([
316
+ ApiPropertyOptional(),
317
+ IsOptional(),
318
+ Type(() => Number),
319
+ IsNumber({ allowNaN: false, allowInfinity: false }),
320
+ Min(0),
321
+ Max(360),
322
+ __metadata("design:type", Number)
323
+ ], ResponderPositionSampleDto.prototype, "headingDegrees", void 0);
324
+ __decorate([
325
+ ApiProperty(),
326
+ IsISO8601({ strict: true }),
327
+ __metadata("design:type", String)
328
+ ], ResponderPositionSampleDto.prototype, "recordedAt", void 0);
329
+ __decorate([
330
+ ApiPropertyOptional(),
331
+ IsOptional(),
332
+ IsBoolean(),
333
+ __metadata("design:type", Boolean)
334
+ ], ResponderPositionSampleDto.prototype, "isMocked", void 0);
335
+ /**
336
+ * `POST /responder/positions` - positions of the unit the caller is on duty
337
+ * with. The server decides the unit from the caller's active duty session;
338
+ * the client never names one.
339
+ */
340
+ export class ReportResponderPositionsDto {
341
+ }
342
+ __decorate([
343
+ ApiProperty({ type: [ResponderPositionSampleDto] }),
344
+ IsArray(),
345
+ ArrayMinSize(1),
346
+ ArrayMaxSize(L.positionBatchSize),
347
+ ValidateNested({ each: true }),
348
+ Type(() => ResponderPositionSampleDto),
349
+ __metadata("design:type", Array)
350
+ ], ReportResponderPositionsDto.prototype, "samples", void 0);
351
+ // ── Policy (organization override) ──────────────────────────────────────────
352
+ export class ResponderLocationPolicyDto {
353
+ }
354
+ __decorate([
355
+ IsOptional(),
356
+ Type(() => Number),
357
+ IsInt(),
358
+ Min(10),
359
+ Max(900),
360
+ __metadata("design:type", Number)
361
+ ], ResponderLocationPolicyDto.prototype, "onDutyIntervalSeconds", void 0);
362
+ __decorate([
363
+ IsOptional(),
364
+ Type(() => Number),
365
+ IsInt(),
366
+ Min(3),
367
+ Max(300),
368
+ __metadata("design:type", Number)
369
+ ], ResponderLocationPolicyDto.prototype, "activeIntervalSeconds", void 0);
370
+ __decorate([
371
+ IsOptional(),
372
+ Type(() => Number),
373
+ IsInt(),
374
+ Min(0),
375
+ Max(500),
376
+ __metadata("design:type", Number)
377
+ ], ResponderLocationPolicyDto.prototype, "distanceFilterMetres", void 0);
378
+ __decorate([
379
+ IsOptional(),
380
+ Type(() => Number),
381
+ IsInt(),
382
+ Min(5),
383
+ Max(1000),
384
+ __metadata("design:type", Number)
385
+ ], ResponderLocationPolicyDto.prototype, "maxAccuracyMetres", void 0);
386
+ __decorate([
387
+ IsOptional(),
388
+ Type(() => Number),
389
+ IsInt(),
390
+ Min(30),
391
+ Max(3600),
392
+ __metadata("design:type", Number)
393
+ ], ResponderLocationPolicyDto.prototype, "staleAfterSeconds", void 0);
394
+ export class ResponderArrivalPolicyDto {
395
+ }
396
+ __decorate([
397
+ IsOptional(),
398
+ Type(() => Number),
399
+ IsInt(),
400
+ Min(25),
401
+ Max(5000),
402
+ __metadata("design:type", Number)
403
+ ], ResponderArrivalPolicyDto.prototype, "radiusMetres", void 0);
404
+ __decorate([
405
+ IsOptional(),
406
+ IsBoolean(),
407
+ __metadata("design:type", Boolean)
408
+ ], ResponderArrivalPolicyDto.prototype, "allowManualConfirmation", void 0);
409
+ __decorate([
410
+ IsOptional(),
411
+ IsBoolean(),
412
+ __metadata("design:type", Boolean)
413
+ ], ResponderArrivalPolicyDto.prototype, "manualReasonRequired", void 0);
414
+ export class ResponderDispatchPolicyDto {
415
+ }
416
+ __decorate([
417
+ IsOptional(),
418
+ IsBoolean(),
419
+ __metadata("design:type", Boolean)
420
+ ], ResponderDispatchPolicyDto.prototype, "allowDecline", void 0);
421
+ __decorate([
422
+ IsOptional(),
423
+ IsBoolean(),
424
+ __metadata("design:type", Boolean)
425
+ ], ResponderDispatchPolicyDto.prototype, "declineReasonRequired", void 0);
426
+ export class ResponderChecklistItemDto {
427
+ }
428
+ __decorate([
429
+ IsString(),
430
+ IsNotEmpty(),
431
+ MaxLength(L.reportChecklistItemId),
432
+ __metadata("design:type", String)
433
+ ], ResponderChecklistItemDto.prototype, "id", void 0);
434
+ __decorate([
435
+ IsString(),
436
+ IsNotEmpty(),
437
+ MaxLength(L.reportChecklistItemLabel),
438
+ __metadata("design:type", String)
439
+ ], ResponderChecklistItemDto.prototype, "label", void 0);
440
+ __decorate([
441
+ IsBoolean(),
442
+ __metadata("design:type", Boolean)
443
+ ], ResponderChecklistItemDto.prototype, "required", void 0);
444
+ export class ResponderReportPolicyDto {
445
+ }
446
+ __decorate([
447
+ IsOptional(),
448
+ IsBoolean(),
449
+ __metadata("design:type", Boolean)
450
+ ], ResponderReportPolicyDto.prototype, "requiredToComplete", void 0);
451
+ __decorate([
452
+ IsOptional(),
453
+ IsArray(),
454
+ IsEnum(ResponderReportField, { each: true }),
455
+ __metadata("design:type", Array)
456
+ ], ResponderReportPolicyDto.prototype, "requiredFields", void 0);
457
+ __decorate([
458
+ IsOptional(),
459
+ IsArray(),
460
+ ArrayMaxSize(L.reportChecklistItems),
461
+ ValidateNested({ each: true }),
462
+ Type(() => ResponderChecklistItemDto),
463
+ __metadata("design:type", Array)
464
+ ], ResponderReportPolicyDto.prototype, "checklist", void 0);
465
+ __decorate([
466
+ IsOptional(),
467
+ Type(() => Number),
468
+ IsInt(),
469
+ Min(0),
470
+ Max(20),
471
+ __metadata("design:type", Number)
472
+ ], ResponderReportPolicyDto.prototype, "minPhotos", void 0);
473
+ export class ResponderEvidencePolicyDto {
474
+ }
475
+ __decorate([
476
+ IsOptional(),
477
+ IsBoolean(),
478
+ __metadata("design:type", Boolean)
479
+ ], ResponderEvidencePolicyDto.prototype, "allowPhotos", void 0);
480
+ __decorate([
481
+ IsOptional(),
482
+ IsBoolean(),
483
+ __metadata("design:type", Boolean)
484
+ ], ResponderEvidencePolicyDto.prototype, "allowDocuments", void 0);
485
+ __decorate([
486
+ IsOptional(),
487
+ IsBoolean(),
488
+ __metadata("design:type", Boolean)
489
+ ], ResponderEvidencePolicyDto.prototype, "allowVideo", void 0);
490
+ __decorate([
491
+ IsOptional(),
492
+ Type(() => Number),
493
+ IsInt(),
494
+ Min(1),
495
+ Max(10),
496
+ __metadata("design:type", Number)
497
+ ], ResponderEvidencePolicyDto.prototype, "maxImageMegabytes", void 0);
498
+ __decorate([
499
+ IsOptional(),
500
+ Type(() => Number),
501
+ IsInt(),
502
+ Min(1),
503
+ Max(100),
504
+ __metadata("design:type", Number)
505
+ ], ResponderEvidencePolicyDto.prototype, "maxDocumentMegabytes", void 0);
506
+ __decorate([
507
+ IsOptional(),
508
+ Type(() => Number),
509
+ IsInt(),
510
+ Min(1),
511
+ Max(500),
512
+ __metadata("design:type", Number)
513
+ ], ResponderEvidencePolicyDto.prototype, "maxVideoMegabytes", void 0);
514
+ export class ResponderReporterContactPolicyDto {
515
+ }
516
+ __decorate([
517
+ IsOptional(),
518
+ IsBoolean(),
519
+ __metadata("design:type", Boolean)
520
+ ], ResponderReporterContactPolicyDto.prototype, "visible", void 0);
521
+ /** An organization's override of DEFAULT_RESPONDER_POLICY; every part optional. */
522
+ export class ResponderPolicyDto {
523
+ }
524
+ __decorate([
525
+ IsOptional(),
526
+ ValidateNested(),
527
+ Type(() => ResponderLocationPolicyDto),
528
+ __metadata("design:type", ResponderLocationPolicyDto)
529
+ ], ResponderPolicyDto.prototype, "location", void 0);
530
+ __decorate([
531
+ IsOptional(),
532
+ ValidateNested(),
533
+ Type(() => ResponderArrivalPolicyDto),
534
+ __metadata("design:type", ResponderArrivalPolicyDto)
535
+ ], ResponderPolicyDto.prototype, "arrival", void 0);
536
+ __decorate([
537
+ IsOptional(),
538
+ ValidateNested(),
539
+ Type(() => ResponderDispatchPolicyDto),
540
+ __metadata("design:type", ResponderDispatchPolicyDto)
541
+ ], ResponderPolicyDto.prototype, "dispatch", void 0);
542
+ __decorate([
543
+ IsOptional(),
544
+ ValidateNested(),
545
+ Type(() => ResponderReportPolicyDto),
546
+ __metadata("design:type", ResponderReportPolicyDto)
547
+ ], ResponderPolicyDto.prototype, "report", void 0);
548
+ __decorate([
549
+ IsOptional(),
550
+ ValidateNested(),
551
+ Type(() => ResponderEvidencePolicyDto),
552
+ __metadata("design:type", ResponderEvidencePolicyDto)
553
+ ], ResponderPolicyDto.prototype, "evidence", void 0);
554
+ __decorate([
555
+ IsOptional(),
556
+ ValidateNested(),
557
+ Type(() => ResponderReporterContactPolicyDto),
558
+ __metadata("design:type", ResponderReporterContactPolicyDto)
559
+ ], ResponderPolicyDto.prototype, "reporterContact", void 0);
560
+ //# sourceMappingURL=responder.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responder.dto.js","sourceRoot":"","sources":["../../../../../src/modules/responder/dtos/responder.dto.ts"],"names":[],"mappings":"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"}