grm-shared-library 1.1.222 → 1.1.224
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/kafka/topics.js +7 -0
- package/dist/cjs/kafka/topics.js.map +1 -1
- package/dist/cjs/modules/gis/dtos/private-trip.dto.js +34 -0
- package/dist/cjs/modules/gis/dtos/private-trip.dto.js.map +1 -1
- package/dist/cjs/modules/gis/dtos/routing.dto.js +251 -0
- package/dist/cjs/modules/gis/dtos/routing.dto.js.map +1 -0
- package/dist/cjs/modules/gis/dtos/trip-points.dto.js +35 -0
- package/dist/cjs/modules/gis/dtos/trip-points.dto.js.map +1 -0
- package/dist/cjs/modules/gis/enums/routing.enum.js +29 -0
- package/dist/cjs/modules/gis/enums/routing.enum.js.map +1 -0
- package/dist/cjs/modules/gis/enums/trip-privacy.enum.js +6 -0
- package/dist/cjs/modules/gis/enums/trip-privacy.enum.js.map +1 -1
- package/dist/cjs/modules/gis/index.js +5 -0
- package/dist/cjs/modules/gis/index.js.map +1 -1
- package/dist/cjs/modules/gis/interfaces/routing.js +3 -0
- package/dist/cjs/modules/gis/interfaces/routing.js.map +1 -0
- package/dist/cjs/modules/gis/interfaces/trip-point.js +3 -0
- package/dist/cjs/modules/gis/interfaces/trip-point.js.map +1 -0
- package/dist/cjs/modules/incident/dtos/incident/incident.dto.js +9 -1
- package/dist/cjs/modules/incident/dtos/incident/incident.dto.js.map +1 -1
- package/dist/cjs/modules/incident/enums/incident-origin-type.enum.js +2 -0
- package/dist/cjs/modules/incident/enums/incident-origin-type.enum.js.map +1 -1
- package/dist/cjs/modules/permission/data/permissions.data.js +10 -1
- package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js +12 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
- package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
- package/dist/cjs/modules/role/constants/safety-roles.js +22 -1
- package/dist/cjs/modules/role/constants/safety-roles.js.map +1 -1
- package/dist/cjs/modules/role/data/roles.data.js +24 -7
- package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
- package/dist/cjs/modules/safety/constants/follow-me.const.js +137 -0
- package/dist/cjs/modules/safety/constants/follow-me.const.js.map +1 -0
- package/dist/cjs/modules/safety/constants/safety-integration.const.js +88 -1
- package/dist/cjs/modules/safety/constants/safety-integration.const.js.map +1 -1
- package/dist/cjs/modules/safety/dtos/follow-me.dto.js +501 -0
- package/dist/cjs/modules/safety/dtos/follow-me.dto.js.map +1 -0
- package/dist/cjs/modules/safety/dtos/safety-admin.dto.js +13 -0
- package/dist/cjs/modules/safety/dtos/safety-admin.dto.js.map +1 -1
- package/dist/cjs/modules/safety/dtos/safety-alert-context.dto.js +60 -0
- package/dist/cjs/modules/safety/dtos/safety-alert-context.dto.js.map +1 -0
- package/dist/cjs/modules/safety/dtos/safety-internal.dto.js +17 -0
- package/dist/cjs/modules/safety/dtos/safety-internal.dto.js.map +1 -1
- package/dist/cjs/modules/safety/enums/follow-me.enums.js +237 -0
- package/dist/cjs/modules/safety/enums/follow-me.enums.js.map +1 -0
- package/dist/cjs/modules/safety/enums/safety-enums.js +8 -3
- package/dist/cjs/modules/safety/enums/safety-enums.js.map +1 -1
- package/dist/cjs/modules/safety/index.js +7 -0
- package/dist/cjs/modules/safety/index.js.map +1 -1
- package/dist/cjs/modules/safety/interfaces/follow-me.js +3 -0
- package/dist/cjs/modules/safety/interfaces/follow-me.js.map +1 -0
- package/dist/cjs/modules/safety/interfaces/safety-alert-context.js +3 -0
- package/dist/cjs/modules/safety/interfaces/safety-alert-context.js.map +1 -0
- package/dist/cjs/modules/safety/utils/follow-me-state-machine.js +131 -0
- package/dist/cjs/modules/safety/utils/follow-me-state-machine.js.map +1 -0
- package/dist/cjs/modules/sms/constants/sms-templates.config.js +12 -0
- package/dist/cjs/modules/sms/constants/sms-templates.config.js.map +1 -1
- package/dist/cjs/modules/sms/enums/sms-template.enum.js +2 -0
- package/dist/cjs/modules/sms/enums/sms-template.enum.js.map +1 -1
- package/dist/esm/kafka/topics.js +7 -0
- package/dist/esm/kafka/topics.js.map +1 -1
- package/dist/esm/modules/gis/dtos/private-trip.dto.js +34 -0
- package/dist/esm/modules/gis/dtos/private-trip.dto.js.map +1 -1
- package/dist/esm/modules/gis/dtos/routing.dto.js +241 -0
- package/dist/esm/modules/gis/dtos/routing.dto.js.map +1 -0
- package/dist/esm/modules/gis/dtos/trip-points.dto.js +31 -0
- package/dist/esm/modules/gis/dtos/trip-points.dto.js.map +1 -0
- package/dist/esm/modules/gis/enums/routing.enum.js +26 -0
- package/dist/esm/modules/gis/enums/routing.enum.js.map +1 -0
- package/dist/esm/modules/gis/enums/trip-privacy.enum.js +6 -0
- package/dist/esm/modules/gis/enums/trip-privacy.enum.js.map +1 -1
- package/dist/esm/modules/gis/index.js +5 -0
- package/dist/esm/modules/gis/index.js.map +1 -1
- package/dist/esm/modules/gis/interfaces/routing.js +2 -0
- package/dist/esm/modules/gis/interfaces/routing.js.map +1 -0
- package/dist/esm/modules/gis/interfaces/trip-point.js +2 -0
- package/dist/esm/modules/gis/interfaces/trip-point.js.map +1 -0
- package/dist/esm/modules/incident/dtos/incident/incident.dto.js +9 -1
- package/dist/esm/modules/incident/dtos/incident/incident.dto.js.map +1 -1
- package/dist/esm/modules/incident/enums/incident-origin-type.enum.js +2 -0
- package/dist/esm/modules/incident/enums/incident-origin-type.enum.js.map +1 -1
- package/dist/esm/modules/permission/data/permissions.data.js +10 -1
- package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
- package/dist/esm/modules/permission/enums/permission-actions.enum.js +12 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
- package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
- package/dist/esm/modules/role/constants/safety-roles.js +21 -0
- package/dist/esm/modules/role/constants/safety-roles.js.map +1 -1
- package/dist/esm/modules/role/data/roles.data.js +24 -7
- package/dist/esm/modules/role/data/roles.data.js.map +1 -1
- package/dist/esm/modules/safety/constants/follow-me.const.js +134 -0
- package/dist/esm/modules/safety/constants/follow-me.const.js.map +1 -0
- package/dist/esm/modules/safety/constants/safety-integration.const.js +86 -0
- package/dist/esm/modules/safety/constants/safety-integration.const.js.map +1 -1
- package/dist/esm/modules/safety/dtos/follow-me.dto.js +488 -0
- package/dist/esm/modules/safety/dtos/follow-me.dto.js.map +1 -0
- package/dist/esm/modules/safety/dtos/safety-admin.dto.js +13 -0
- package/dist/esm/modules/safety/dtos/safety-admin.dto.js.map +1 -1
- package/dist/esm/modules/safety/dtos/safety-alert-context.dto.js +55 -0
- package/dist/esm/modules/safety/dtos/safety-alert-context.dto.js.map +1 -0
- package/dist/esm/modules/safety/dtos/safety-internal.dto.js +17 -0
- package/dist/esm/modules/safety/dtos/safety-internal.dto.js.map +1 -1
- package/dist/esm/modules/safety/enums/follow-me.enums.js +234 -0
- package/dist/esm/modules/safety/enums/follow-me.enums.js.map +1 -0
- package/dist/esm/modules/safety/enums/safety-enums.js +8 -3
- package/dist/esm/modules/safety/enums/safety-enums.js.map +1 -1
- package/dist/esm/modules/safety/index.js +7 -0
- package/dist/esm/modules/safety/index.js.map +1 -1
- package/dist/esm/modules/safety/interfaces/follow-me.js +2 -0
- package/dist/esm/modules/safety/interfaces/follow-me.js.map +1 -0
- package/dist/esm/modules/safety/interfaces/safety-alert-context.js +2 -0
- package/dist/esm/modules/safety/interfaces/safety-alert-context.js.map +1 -0
- package/dist/esm/modules/safety/utils/follow-me-state-machine.js +116 -0
- package/dist/esm/modules/safety/utils/follow-me-state-machine.js.map +1 -0
- package/dist/esm/modules/sms/constants/sms-templates.config.js +12 -0
- package/dist/esm/modules/sms/constants/sms-templates.config.js.map +1 -1
- package/dist/esm/modules/sms/enums/sms-template.enum.js +2 -0
- package/dist/esm/modules/sms/enums/sms-template.enum.js.map +1 -1
- package/dist/types/kafka/topics.d.ts +5 -0
- package/dist/types/modules/gis/dtos/private-trip.dto.d.ts +4 -0
- package/dist/types/modules/gis/dtos/routing.dto.d.ts +48 -0
- package/dist/types/modules/gis/dtos/trip-points.dto.d.ts +5 -0
- package/dist/types/modules/gis/enums/routing.enum.d.ts +22 -0
- package/dist/types/modules/gis/enums/trip-privacy.enum.d.ts +7 -1
- package/dist/types/modules/gis/index.d.ts +5 -0
- package/dist/types/modules/gis/interfaces/routing.d.ts +43 -0
- package/dist/types/modules/gis/interfaces/trip-point.d.ts +16 -0
- package/dist/types/modules/gis/interfaces/trip-summary.d.ts +2 -6
- package/dist/types/modules/incident/dtos/incident/incident.dto.d.ts +2 -0
- package/dist/types/modules/incident/enums/incident-origin-type.enum.d.ts +3 -1
- package/dist/types/modules/incident/intefaces/incident.d.ts +3 -0
- package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +4 -0
- package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
- package/dist/types/modules/role/constants/safety-roles.d.ts +10 -0
- package/dist/types/modules/safety/constants/follow-me.const.d.ts +120 -0
- package/dist/types/modules/safety/constants/safety-integration.const.d.ts +79 -0
- package/dist/types/modules/safety/dtos/follow-me.dto.d.ts +106 -0
- package/dist/types/modules/safety/dtos/safety-admin.dto.d.ts +3 -0
- package/dist/types/modules/safety/dtos/safety-alert-context.dto.d.ts +14 -0
- package/dist/types/modules/safety/dtos/safety-internal.dto.d.ts +3 -0
- package/dist/types/modules/safety/enums/follow-me.enums.d.ts +218 -0
- package/dist/types/modules/safety/enums/safety-enums.d.ts +9 -4
- package/dist/types/modules/safety/index.d.ts +7 -0
- package/dist/types/modules/safety/interfaces/follow-me.d.ts +377 -0
- package/dist/types/modules/safety/interfaces/safety-alert-context.d.ts +8 -0
- package/dist/types/modules/safety/interfaces/safety-check.d.ts +3 -1
- package/dist/types/modules/safety/utils/follow-me-state-machine.d.ts +51 -0
- package/dist/types/modules/sms/enums/sms-template.enum.d.ts +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,488 @@
|
|
|
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, IsDateString, IsEnum, IsIn, IsInt, IsNotEmptyObject, IsNumber, IsOptional, IsPositive, IsString, IsUUID, Matches, Max, MaxLength, Min, MinLength, ValidateNested, } from 'class-validator';
|
|
13
|
+
import { GuardianAudienceDto } from '../../alert-dispatch/dtos/guardian-audience.dto';
|
|
14
|
+
import { FOLLOW_ME_CRASH_DETECTION, FOLLOW_ME_LIMITS } from '../constants/follow-me.const';
|
|
15
|
+
import { FollowMeStatus, FollowMeTransportMode, FollowMeWaypointKind } from '../enums/follow-me.enums';
|
|
16
|
+
import { SafetyCheckLocationDto } from './safety-check.dto';
|
|
17
|
+
const trim = ({ value }) => (typeof value === 'string' ? value.trim() : value);
|
|
18
|
+
const toOptionalBoolean = ({ value }) => {
|
|
19
|
+
if (value === undefined || value === null || value === '')
|
|
20
|
+
return undefined;
|
|
21
|
+
if (typeof value === 'boolean')
|
|
22
|
+
return value;
|
|
23
|
+
const normalized = String(value).toLowerCase();
|
|
24
|
+
if (normalized === 'true')
|
|
25
|
+
return true;
|
|
26
|
+
if (normalized === 'false')
|
|
27
|
+
return false;
|
|
28
|
+
return undefined;
|
|
29
|
+
};
|
|
30
|
+
/** One point of a planned journey: where it starts, a stop, or where it ends. */
|
|
31
|
+
export class FollowMeWaypointDto {
|
|
32
|
+
}
|
|
33
|
+
__decorate([
|
|
34
|
+
ApiProperty({ enum: FollowMeWaypointKind }),
|
|
35
|
+
IsEnum(FollowMeWaypointKind),
|
|
36
|
+
__metadata("design:type", String)
|
|
37
|
+
], FollowMeWaypointDto.prototype, "kind", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
ApiProperty(),
|
|
40
|
+
Type(() => Number),
|
|
41
|
+
IsNumber(),
|
|
42
|
+
Min(-90),
|
|
43
|
+
Max(90),
|
|
44
|
+
__metadata("design:type", Number)
|
|
45
|
+
], FollowMeWaypointDto.prototype, "lat", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
ApiProperty(),
|
|
48
|
+
Type(() => Number),
|
|
49
|
+
IsNumber(),
|
|
50
|
+
Min(-180),
|
|
51
|
+
Max(180),
|
|
52
|
+
__metadata("design:type", Number)
|
|
53
|
+
], FollowMeWaypointDto.prototype, "lng", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
ApiProperty({ maxLength: 120, example: 'Home' }),
|
|
56
|
+
Transform(trim),
|
|
57
|
+
IsString(),
|
|
58
|
+
MinLength(1),
|
|
59
|
+
MaxLength(120),
|
|
60
|
+
__metadata("design:type", String)
|
|
61
|
+
], FollowMeWaypointDto.prototype, "label", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
ApiPropertyOptional({ maxLength: 255 }),
|
|
64
|
+
Transform(trim),
|
|
65
|
+
IsString(),
|
|
66
|
+
MaxLength(255),
|
|
67
|
+
IsOptional(),
|
|
68
|
+
__metadata("design:type", String)
|
|
69
|
+
], FollowMeWaypointDto.prototype, "address", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
ApiPropertyOptional({ maxLength: 255, description: 'Maps provider place id, when chosen from search' }),
|
|
72
|
+
IsString(),
|
|
73
|
+
MaxLength(255),
|
|
74
|
+
IsOptional(),
|
|
75
|
+
__metadata("design:type", String)
|
|
76
|
+
], FollowMeWaypointDto.prototype, "placeId", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
ApiPropertyOptional({ format: 'uuid', description: 'The saved place it came from, if any' }),
|
|
79
|
+
IsUUID(),
|
|
80
|
+
IsOptional(),
|
|
81
|
+
__metadata("design:type", String)
|
|
82
|
+
], FollowMeWaypointDto.prototype, "savedPlaceId", void 0);
|
|
83
|
+
/**
|
|
84
|
+
* Plan a route (POST /safety/follow-me/routes/preview). Exactly one START (the
|
|
85
|
+
* app defaults it to the current location), 0..5 STOPs in order, exactly one
|
|
86
|
+
* DESTINATION. clarion-safety validates the shape; clarion-gis computes it.
|
|
87
|
+
*/
|
|
88
|
+
export class PreviewFollowMeRouteDto {
|
|
89
|
+
}
|
|
90
|
+
__decorate([
|
|
91
|
+
ApiProperty({ enum: FollowMeTransportMode }),
|
|
92
|
+
IsEnum(FollowMeTransportMode),
|
|
93
|
+
__metadata("design:type", String)
|
|
94
|
+
], PreviewFollowMeRouteDto.prototype, "transportMode", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
ApiProperty({ type: [FollowMeWaypointDto] }),
|
|
97
|
+
IsArray(),
|
|
98
|
+
ArrayMinSize(2),
|
|
99
|
+
ArrayMaxSize(FOLLOW_ME_LIMITS.maxIntermediateStops + 2),
|
|
100
|
+
ValidateNested({ each: true }),
|
|
101
|
+
Type(() => FollowMeWaypointDto),
|
|
102
|
+
__metadata("design:type", Array)
|
|
103
|
+
], PreviewFollowMeRouteDto.prototype, "waypoints", void 0);
|
|
104
|
+
/**
|
|
105
|
+
* The planned route a session starts with. The geometry is never taken from the
|
|
106
|
+
* client: `routeToken` names a preview clarion-safety computed and stored for
|
|
107
|
+
* this user, and the waypoints must match it.
|
|
108
|
+
*/
|
|
109
|
+
export class FollowMeRoutePlanDto {
|
|
110
|
+
}
|
|
111
|
+
__decorate([
|
|
112
|
+
ApiProperty({ description: 'From POST /safety/follow-me/routes/preview' }),
|
|
113
|
+
IsString(),
|
|
114
|
+
Matches(/^[A-Za-z0-9_-]{16,128}$/),
|
|
115
|
+
__metadata("design:type", String)
|
|
116
|
+
], FollowMeRoutePlanDto.prototype, "routeToken", void 0);
|
|
117
|
+
/**
|
|
118
|
+
* Starting Follow Me. Every field is re-checked server-side: the reason against
|
|
119
|
+
* the database, each guardian against clarion-authentication, provider
|
|
120
|
+
* participation against clarion-billing, the duration against the 24 h cap, and
|
|
121
|
+
* the route against the stored preview.
|
|
122
|
+
*/
|
|
123
|
+
export class StartFollowMeDto {
|
|
124
|
+
}
|
|
125
|
+
__decorate([
|
|
126
|
+
ApiProperty({ format: 'uuid', description: 'A Follow Me reason from GET /safety/follow-me/reasons' }),
|
|
127
|
+
IsUUID(),
|
|
128
|
+
__metadata("design:type", String)
|
|
129
|
+
], StartFollowMeDto.prototype, "reasonId", void 0);
|
|
130
|
+
__decorate([
|
|
131
|
+
ApiPropertyOptional({ maxLength: FOLLOW_ME_LIMITS.customReasonMaxLength }),
|
|
132
|
+
Transform(trim),
|
|
133
|
+
IsString(),
|
|
134
|
+
MaxLength(FOLLOW_ME_LIMITS.customReasonMaxLength),
|
|
135
|
+
IsOptional(),
|
|
136
|
+
__metadata("design:type", String)
|
|
137
|
+
], StartFollowMeDto.prototype, "customReason", void 0);
|
|
138
|
+
__decorate([
|
|
139
|
+
ApiProperty({
|
|
140
|
+
minimum: FOLLOW_ME_LIMITS.minDurationMinutes,
|
|
141
|
+
maximum: FOLLOW_ME_LIMITS.maxDurationMinutes,
|
|
142
|
+
}),
|
|
143
|
+
Type(() => Number),
|
|
144
|
+
IsInt(),
|
|
145
|
+
Min(FOLLOW_ME_LIMITS.minDurationMinutes),
|
|
146
|
+
Max(FOLLOW_ME_LIMITS.maxDurationMinutes),
|
|
147
|
+
__metadata("design:type", Number)
|
|
148
|
+
], StartFollowMeDto.prototype, "durationMinutes", void 0);
|
|
149
|
+
__decorate([
|
|
150
|
+
ApiPropertyOptional({
|
|
151
|
+
minimum: FOLLOW_ME_LIMITS.minPromptCountdownSeconds,
|
|
152
|
+
maximum: FOLLOW_ME_LIMITS.maxPromptCountdownSeconds,
|
|
153
|
+
default: FOLLOW_ME_LIMITS.defaultPromptCountdownSeconds,
|
|
154
|
+
}),
|
|
155
|
+
Type(() => Number),
|
|
156
|
+
IsInt(),
|
|
157
|
+
Min(FOLLOW_ME_LIMITS.minPromptCountdownSeconds),
|
|
158
|
+
Max(FOLLOW_ME_LIMITS.maxPromptCountdownSeconds),
|
|
159
|
+
IsOptional(),
|
|
160
|
+
__metadata("design:type", Number)
|
|
161
|
+
], StartFollowMeDto.prototype, "promptCountdownSeconds", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
ApiProperty({ type: GuardianAudienceDto, description: 'Snapshotted at start: these guardians, and only these, may follow' }),
|
|
164
|
+
IsNotEmptyObject(),
|
|
165
|
+
ValidateNested(),
|
|
166
|
+
Type(() => GuardianAudienceDto),
|
|
167
|
+
__metadata("design:type", GuardianAudienceDto)
|
|
168
|
+
], StartFollowMeDto.prototype, "guardians", void 0);
|
|
169
|
+
__decorate([
|
|
170
|
+
ApiProperty({ description: 'Include the service provider (live view + SOS escalation). Refused without premium.' }),
|
|
171
|
+
IsBoolean(),
|
|
172
|
+
__metadata("design:type", Boolean)
|
|
173
|
+
], StartFollowMeDto.prototype, "notifyServiceProvider", void 0);
|
|
174
|
+
__decorate([
|
|
175
|
+
ApiProperty({
|
|
176
|
+
description: 'Tell guardians when the journey ends. Follow requests are always sent - they are how a guardian starts following.',
|
|
177
|
+
}),
|
|
178
|
+
IsBoolean(),
|
|
179
|
+
__metadata("design:type", Boolean)
|
|
180
|
+
], StartFollowMeDto.prototype, "notifyGuardiansOnStartEnd", void 0);
|
|
181
|
+
__decorate([
|
|
182
|
+
ApiPropertyOptional({ enum: FollowMeTransportMode, description: 'Taken from the route when one is planned' }),
|
|
183
|
+
IsEnum(FollowMeTransportMode),
|
|
184
|
+
IsOptional(),
|
|
185
|
+
__metadata("design:type", String)
|
|
186
|
+
], StartFollowMeDto.prototype, "transportMode", void 0);
|
|
187
|
+
__decorate([
|
|
188
|
+
ApiPropertyOptional({ type: FollowMeRoutePlanDto }),
|
|
189
|
+
ValidateNested(),
|
|
190
|
+
Type(() => FollowMeRoutePlanDto),
|
|
191
|
+
IsOptional(),
|
|
192
|
+
__metadata("design:type", FollowMeRoutePlanDto)
|
|
193
|
+
], StartFollowMeDto.prototype, "route", void 0);
|
|
194
|
+
__decorate([
|
|
195
|
+
ApiPropertyOptional({ type: SafetyCheckLocationDto, description: 'Where the user is as they start' }),
|
|
196
|
+
ValidateNested(),
|
|
197
|
+
Type(() => SafetyCheckLocationDto),
|
|
198
|
+
IsOptional(),
|
|
199
|
+
__metadata("design:type", SafetyCheckLocationDto)
|
|
200
|
+
], StartFollowMeDto.prototype, "startLocation", void 0);
|
|
201
|
+
__decorate([
|
|
202
|
+
ApiPropertyOptional({ description: 'The device can track in the background (reported, recorded, never trusted for authorization)' }),
|
|
203
|
+
IsBoolean(),
|
|
204
|
+
IsOptional(),
|
|
205
|
+
__metadata("design:type", Boolean)
|
|
206
|
+
], StartFollowMeDto.prototype, "backgroundLocationGranted", void 0);
|
|
207
|
+
__decorate([
|
|
208
|
+
ApiPropertyOptional({ description: 'The device can run crash detection (motion sensors available and allowed)' }),
|
|
209
|
+
IsBoolean(),
|
|
210
|
+
IsOptional(),
|
|
211
|
+
__metadata("design:type", Boolean)
|
|
212
|
+
], StartFollowMeDto.prototype, "crashDetectionAvailable", void 0);
|
|
213
|
+
/** One recorded fix, with everything the device knows about it. */
|
|
214
|
+
export class FollowMeTrackPointDto {
|
|
215
|
+
}
|
|
216
|
+
__decorate([
|
|
217
|
+
ApiProperty(),
|
|
218
|
+
Type(() => Number),
|
|
219
|
+
IsNumber(),
|
|
220
|
+
Min(-90),
|
|
221
|
+
Max(90),
|
|
222
|
+
__metadata("design:type", Number)
|
|
223
|
+
], FollowMeTrackPointDto.prototype, "lat", void 0);
|
|
224
|
+
__decorate([
|
|
225
|
+
ApiProperty(),
|
|
226
|
+
Type(() => Number),
|
|
227
|
+
IsNumber(),
|
|
228
|
+
Min(-180),
|
|
229
|
+
Max(180),
|
|
230
|
+
__metadata("design:type", Number)
|
|
231
|
+
], FollowMeTrackPointDto.prototype, "lng", void 0);
|
|
232
|
+
__decorate([
|
|
233
|
+
ApiProperty({ description: 'When the device took the fix (ISO 8601)' }),
|
|
234
|
+
IsDateString(),
|
|
235
|
+
__metadata("design:type", String)
|
|
236
|
+
], FollowMeTrackPointDto.prototype, "timestamp", void 0);
|
|
237
|
+
__decorate([
|
|
238
|
+
ApiPropertyOptional(),
|
|
239
|
+
Type(() => Number),
|
|
240
|
+
IsNumber(),
|
|
241
|
+
Min(0),
|
|
242
|
+
Max(100000),
|
|
243
|
+
IsOptional(),
|
|
244
|
+
__metadata("design:type", Number)
|
|
245
|
+
], FollowMeTrackPointDto.prototype, "accuracy", void 0);
|
|
246
|
+
__decorate([
|
|
247
|
+
ApiPropertyOptional(),
|
|
248
|
+
Type(() => Number),
|
|
249
|
+
IsNumber(),
|
|
250
|
+
Min(-500),
|
|
251
|
+
Max(10000),
|
|
252
|
+
IsOptional(),
|
|
253
|
+
__metadata("design:type", Number)
|
|
254
|
+
], FollowMeTrackPointDto.prototype, "altitude", void 0);
|
|
255
|
+
__decorate([
|
|
256
|
+
ApiPropertyOptional({ description: 'm/s' }),
|
|
257
|
+
Type(() => Number),
|
|
258
|
+
IsNumber(),
|
|
259
|
+
Min(0),
|
|
260
|
+
Max(150),
|
|
261
|
+
IsOptional(),
|
|
262
|
+
__metadata("design:type", Number)
|
|
263
|
+
], FollowMeTrackPointDto.prototype, "speed", void 0);
|
|
264
|
+
__decorate([
|
|
265
|
+
ApiPropertyOptional({ description: 'Degrees from north' }),
|
|
266
|
+
Type(() => Number),
|
|
267
|
+
IsNumber(),
|
|
268
|
+
Min(0),
|
|
269
|
+
Max(360),
|
|
270
|
+
IsOptional(),
|
|
271
|
+
__metadata("design:type", Number)
|
|
272
|
+
], FollowMeTrackPointDto.prototype, "heading", void 0);
|
|
273
|
+
__decorate([
|
|
274
|
+
ApiPropertyOptional({ maxLength: 20 }),
|
|
275
|
+
IsString(),
|
|
276
|
+
MaxLength(20),
|
|
277
|
+
IsOptional(),
|
|
278
|
+
__metadata("design:type", String)
|
|
279
|
+
], FollowMeTrackPointDto.prototype, "source", void 0);
|
|
280
|
+
export class FollowMeTrackPointsDto {
|
|
281
|
+
}
|
|
282
|
+
__decorate([
|
|
283
|
+
ApiProperty({ type: [FollowMeTrackPointDto] }),
|
|
284
|
+
IsArray(),
|
|
285
|
+
ArrayMinSize(1),
|
|
286
|
+
ArrayMaxSize(FOLLOW_ME_LIMITS.maxTrackPointsPerBatch),
|
|
287
|
+
ValidateNested({ each: true }),
|
|
288
|
+
Type(() => FollowMeTrackPointDto),
|
|
289
|
+
__metadata("design:type", Array)
|
|
290
|
+
], FollowMeTrackPointsDto.prototype, "points", void 0);
|
|
291
|
+
/**
|
|
292
|
+
* The device's evidence for a suspected crash. Only a SUSPICION: clarion-safety
|
|
293
|
+
* checks it against the recorded track and then asks the user, it never raises an
|
|
294
|
+
* SOS from this alone.
|
|
295
|
+
*/
|
|
296
|
+
export class ReportFollowMeCrashDto {
|
|
297
|
+
}
|
|
298
|
+
__decorate([
|
|
299
|
+
ApiProperty({ description: 'When the impact happened (ISO 8601)' }),
|
|
300
|
+
IsDateString(),
|
|
301
|
+
__metadata("design:type", String)
|
|
302
|
+
], ReportFollowMeCrashDto.prototype, "detectedAt", void 0);
|
|
303
|
+
__decorate([
|
|
304
|
+
ApiProperty({ minimum: 0, maximum: 1 }),
|
|
305
|
+
Type(() => Number),
|
|
306
|
+
IsNumber(),
|
|
307
|
+
Min(0),
|
|
308
|
+
Max(1),
|
|
309
|
+
__metadata("design:type", Number)
|
|
310
|
+
], ReportFollowMeCrashDto.prototype, "confidence", void 0);
|
|
311
|
+
__decorate([
|
|
312
|
+
ApiProperty({ description: 'Peak acceleration magnitude in g' }),
|
|
313
|
+
Type(() => Number),
|
|
314
|
+
IsNumber(),
|
|
315
|
+
Min(0),
|
|
316
|
+
Max(200),
|
|
317
|
+
__metadata("design:type", Number)
|
|
318
|
+
], ReportFollowMeCrashDto.prototype, "peakAccelerationG", void 0);
|
|
319
|
+
__decorate([
|
|
320
|
+
ApiPropertyOptional({ description: 'Peak rotation rate in rad/s' }),
|
|
321
|
+
Type(() => Number),
|
|
322
|
+
IsNumber(),
|
|
323
|
+
Min(0),
|
|
324
|
+
Max(100),
|
|
325
|
+
IsOptional(),
|
|
326
|
+
__metadata("design:type", Number)
|
|
327
|
+
], ReportFollowMeCrashDto.prototype, "peakRotationRadS", void 0);
|
|
328
|
+
__decorate([
|
|
329
|
+
ApiPropertyOptional(),
|
|
330
|
+
Type(() => Number),
|
|
331
|
+
IsNumber(),
|
|
332
|
+
Min(0),
|
|
333
|
+
Max(500),
|
|
334
|
+
IsOptional(),
|
|
335
|
+
__metadata("design:type", Number)
|
|
336
|
+
], ReportFollowMeCrashDto.prototype, "speedBeforeKph", void 0);
|
|
337
|
+
__decorate([
|
|
338
|
+
ApiPropertyOptional(),
|
|
339
|
+
Type(() => Number),
|
|
340
|
+
IsNumber(),
|
|
341
|
+
Min(0),
|
|
342
|
+
Max(500),
|
|
343
|
+
IsOptional(),
|
|
344
|
+
__metadata("design:type", Number)
|
|
345
|
+
], ReportFollowMeCrashDto.prototype, "speedAfterKph", void 0);
|
|
346
|
+
__decorate([
|
|
347
|
+
ApiPropertyOptional(),
|
|
348
|
+
Type(() => Number),
|
|
349
|
+
IsNumber(),
|
|
350
|
+
Min(0),
|
|
351
|
+
Max(3600),
|
|
352
|
+
IsOptional(),
|
|
353
|
+
__metadata("design:type", Number)
|
|
354
|
+
], ReportFollowMeCrashDto.prototype, "stillnessSeconds", void 0);
|
|
355
|
+
__decorate([
|
|
356
|
+
ApiProperty({ description: 'A free fall preceded the impact (a dropped phone)' }),
|
|
357
|
+
IsBoolean(),
|
|
358
|
+
__metadata("design:type", Boolean)
|
|
359
|
+
], ReportFollowMeCrashDto.prototype, "freeFallDetected", void 0);
|
|
360
|
+
__decorate([
|
|
361
|
+
ApiProperty({ example: FOLLOW_ME_CRASH_DETECTION.evidenceVersion }),
|
|
362
|
+
IsString(),
|
|
363
|
+
MaxLength(20),
|
|
364
|
+
__metadata("design:type", String)
|
|
365
|
+
], ReportFollowMeCrashDto.prototype, "evidenceVersion", void 0);
|
|
366
|
+
__decorate([
|
|
367
|
+
ApiPropertyOptional({ type: SafetyCheckLocationDto }),
|
|
368
|
+
ValidateNested(),
|
|
369
|
+
Type(() => SafetyCheckLocationDto),
|
|
370
|
+
IsOptional(),
|
|
371
|
+
__metadata("design:type", SafetyCheckLocationDto)
|
|
372
|
+
], ReportFollowMeCrashDto.prototype, "location", void 0);
|
|
373
|
+
/** Answering a prompt: names the prompt so a stale screen cannot answer a newer one. */
|
|
374
|
+
export class ConfirmFollowMePromptDto {
|
|
375
|
+
}
|
|
376
|
+
__decorate([
|
|
377
|
+
ApiProperty({ format: 'uuid' }),
|
|
378
|
+
IsUUID(),
|
|
379
|
+
__metadata("design:type", String)
|
|
380
|
+
], ConfirmFollowMePromptDto.prototype, "promptId", void 0);
|
|
381
|
+
__decorate([
|
|
382
|
+
ApiPropertyOptional({ type: SafetyCheckLocationDto }),
|
|
383
|
+
ValidateNested(),
|
|
384
|
+
Type(() => SafetyCheckLocationDto),
|
|
385
|
+
IsOptional(),
|
|
386
|
+
__metadata("design:type", SafetyCheckLocationDto)
|
|
387
|
+
], ConfirmFollowMePromptDto.prototype, "location", void 0);
|
|
388
|
+
/** Filters for the admin Follow Me list; narrows only (scope comes from the caller). */
|
|
389
|
+
export class FollowMeAdminQueryDto {
|
|
390
|
+
}
|
|
391
|
+
__decorate([
|
|
392
|
+
ApiPropertyOptional({ minimum: 1, default: 1 }),
|
|
393
|
+
Type(() => Number),
|
|
394
|
+
IsInt(),
|
|
395
|
+
Min(1),
|
|
396
|
+
IsOptional(),
|
|
397
|
+
__metadata("design:type", Number)
|
|
398
|
+
], FollowMeAdminQueryDto.prototype, "page", void 0);
|
|
399
|
+
__decorate([
|
|
400
|
+
ApiPropertyOptional({ minimum: 1, maximum: 100, default: 25 }),
|
|
401
|
+
Type(() => Number),
|
|
402
|
+
IsInt(),
|
|
403
|
+
Min(1),
|
|
404
|
+
Max(100),
|
|
405
|
+
IsOptional(),
|
|
406
|
+
__metadata("design:type", Number)
|
|
407
|
+
], FollowMeAdminQueryDto.prototype, "limit", void 0);
|
|
408
|
+
__decorate([
|
|
409
|
+
ApiPropertyOptional({ enum: FollowMeStatus }),
|
|
410
|
+
IsEnum(FollowMeStatus),
|
|
411
|
+
IsOptional(),
|
|
412
|
+
__metadata("design:type", String)
|
|
413
|
+
], FollowMeAdminQueryDto.prototype, "status", void 0);
|
|
414
|
+
__decorate([
|
|
415
|
+
ApiPropertyOptional({ description: 'Only sessions still running' }),
|
|
416
|
+
Transform(toOptionalBoolean),
|
|
417
|
+
IsBoolean(),
|
|
418
|
+
IsOptional(),
|
|
419
|
+
__metadata("design:type", Boolean)
|
|
420
|
+
], FollowMeAdminQueryDto.prototype, "activeOnly", void 0);
|
|
421
|
+
__decorate([
|
|
422
|
+
ApiPropertyOptional({ description: 'Super-admin only' }),
|
|
423
|
+
Type(() => Number),
|
|
424
|
+
IsInt(),
|
|
425
|
+
IsPositive(),
|
|
426
|
+
IsOptional(),
|
|
427
|
+
__metadata("design:type", Number)
|
|
428
|
+
], FollowMeAdminQueryDto.prototype, "organizationId", void 0);
|
|
429
|
+
__decorate([
|
|
430
|
+
ApiPropertyOptional(),
|
|
431
|
+
Type(() => Number),
|
|
432
|
+
IsInt(),
|
|
433
|
+
IsPositive(),
|
|
434
|
+
IsOptional(),
|
|
435
|
+
__metadata("design:type", Number)
|
|
436
|
+
], FollowMeAdminQueryDto.prototype, "userId", void 0);
|
|
437
|
+
__decorate([
|
|
438
|
+
ApiPropertyOptional(),
|
|
439
|
+
Transform(toOptionalBoolean),
|
|
440
|
+
IsBoolean(),
|
|
441
|
+
IsOptional(),
|
|
442
|
+
__metadata("design:type", Boolean)
|
|
443
|
+
], FollowMeAdminQueryDto.prototype, "sosOnly", void 0);
|
|
444
|
+
__decorate([
|
|
445
|
+
ApiPropertyOptional({ description: 'Only sessions the provider was included in' }),
|
|
446
|
+
Transform(toOptionalBoolean),
|
|
447
|
+
IsBoolean(),
|
|
448
|
+
IsOptional(),
|
|
449
|
+
__metadata("design:type", Boolean)
|
|
450
|
+
], FollowMeAdminQueryDto.prototype, "providerParticipation", void 0);
|
|
451
|
+
__decorate([
|
|
452
|
+
ApiPropertyOptional({ description: 'Started at or after (ISO 8601; a bare date is the start of the day)' }),
|
|
453
|
+
IsDateString(),
|
|
454
|
+
IsOptional(),
|
|
455
|
+
__metadata("design:type", String)
|
|
456
|
+
], FollowMeAdminQueryDto.prototype, "from", void 0);
|
|
457
|
+
__decorate([
|
|
458
|
+
ApiPropertyOptional({ description: 'Started at or before (ISO 8601; a bare date includes the whole day)' }),
|
|
459
|
+
IsDateString(),
|
|
460
|
+
IsOptional(),
|
|
461
|
+
__metadata("design:type", String)
|
|
462
|
+
], FollowMeAdminQueryDto.prototype, "to", void 0);
|
|
463
|
+
__decorate([
|
|
464
|
+
ApiPropertyOptional({ format: 'uuid' }),
|
|
465
|
+
IsUUID(),
|
|
466
|
+
IsOptional(),
|
|
467
|
+
__metadata("design:type", String)
|
|
468
|
+
], FollowMeAdminQueryDto.prototype, "id", void 0);
|
|
469
|
+
__decorate([
|
|
470
|
+
ApiPropertyOptional({ enum: ['startedAt', 'createdAt'], default: 'startedAt' }),
|
|
471
|
+
IsIn(['startedAt', 'createdAt']),
|
|
472
|
+
IsOptional(),
|
|
473
|
+
__metadata("design:type", String)
|
|
474
|
+
], FollowMeAdminQueryDto.prototype, "sortBy", void 0);
|
|
475
|
+
/** clarion-safety -> clarion-workflow-manager: start the Follow Me timer (idempotent). */
|
|
476
|
+
export class StartFollowMeWorkflowDto {
|
|
477
|
+
}
|
|
478
|
+
__decorate([
|
|
479
|
+
ApiProperty({ format: 'uuid' }),
|
|
480
|
+
IsUUID(),
|
|
481
|
+
__metadata("design:type", String)
|
|
482
|
+
], StartFollowMeWorkflowDto.prototype, "sessionId", void 0);
|
|
483
|
+
__decorate([
|
|
484
|
+
ApiProperty(),
|
|
485
|
+
IsDateString(),
|
|
486
|
+
__metadata("design:type", String)
|
|
487
|
+
], StartFollowMeWorkflowDto.prototype, "firstWakeAt", void 0);
|
|
488
|
+
//# sourceMappingURL=follow-me.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"follow-me.dto.js","sourceRoot":"","sources":["../../../../../src/modules/safety/dtos/follow-me.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import { Transform, Type } from 'class-transformer';
|
|
|
12
12
|
import { IsBoolean, IsDateString, IsEnum, IsInt, IsOptional, IsPositive, IsString, IsUUID, Matches, Max, MaxLength, Min, MinLength, } from 'class-validator';
|
|
13
13
|
import { CountryCode } from '../../country/enums/country-code.enum';
|
|
14
14
|
import { SafetyCheckStatus } from '../enums/safety-check-status.enum';
|
|
15
|
+
import { SafetyFeature } from '../enums/safety-enums';
|
|
15
16
|
/** Turns 'true'/'false' query strings into booleans without accepting anything else. */
|
|
16
17
|
const toOptionalBoolean = ({ value }) => {
|
|
17
18
|
if (value === undefined || value === null || value === '')
|
|
@@ -142,6 +143,12 @@ __decorate([
|
|
|
142
143
|
IsOptional(),
|
|
143
144
|
__metadata("design:type", String)
|
|
144
145
|
], CreateSafetyCheckReasonDto.prototype, "countryCode", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
ApiPropertyOptional({ enum: SafetyFeature, default: SafetyFeature.SAFETY_CHECK, description: 'Which feature offers it' }),
|
|
148
|
+
IsEnum(SafetyFeature),
|
|
149
|
+
IsOptional(),
|
|
150
|
+
__metadata("design:type", String)
|
|
151
|
+
], CreateSafetyCheckReasonDto.prototype, "feature", void 0);
|
|
145
152
|
__decorate([
|
|
146
153
|
ApiPropertyOptional({ description: 'The "Write my own" entry: the user types the reason.', default: false }),
|
|
147
154
|
IsBoolean(),
|
|
@@ -222,4 +229,10 @@ __decorate([
|
|
|
222
229
|
IsOptional(),
|
|
223
230
|
__metadata("design:type", Boolean)
|
|
224
231
|
], SafetyCheckReasonAdminQueryDto.prototype, "includeInactive", void 0);
|
|
232
|
+
__decorate([
|
|
233
|
+
ApiPropertyOptional({ enum: SafetyFeature, description: 'One feature only; both when omitted' }),
|
|
234
|
+
IsEnum(SafetyFeature),
|
|
235
|
+
IsOptional(),
|
|
236
|
+
__metadata("design:type", String)
|
|
237
|
+
], SafetyCheckReasonAdminQueryDto.prototype, "feature", void 0);
|
|
225
238
|
//# sourceMappingURL=safety-admin.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safety-admin.dto.js","sourceRoot":"","sources":["../../../../../src/modules/safety/dtos/safety-admin.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EACH,SAAS,EACT,YAAY,EACZ,MAAM,EACN,KAAK,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,MAAM,EACN,OAAO,EACP,GAAG,EACH,SAAS,EACT,GAAG,EACH,SAAS,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"safety-admin.dto.js","sourceRoot":"","sources":["../../../../../src/modules/safety/dtos/safety-admin.dto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
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 } from '@nestjs/swagger';
|
|
11
|
+
import { Transform, Type } from 'class-transformer';
|
|
12
|
+
import { ArrayMaxSize, IsArray, IsString, MaxLength, MinLength, ValidateNested } from 'class-validator';
|
|
13
|
+
const trim = ({ value }) => (typeof value === 'string' ? value.trim() : value);
|
|
14
|
+
export class SafetyAlertContextFactDto {
|
|
15
|
+
}
|
|
16
|
+
__decorate([
|
|
17
|
+
ApiProperty({ maxLength: 60, example: 'Destination' }),
|
|
18
|
+
Transform(trim),
|
|
19
|
+
IsString(),
|
|
20
|
+
MinLength(1),
|
|
21
|
+
MaxLength(60),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], SafetyAlertContextFactDto.prototype, "label", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
ApiProperty({ maxLength: 200, example: 'Westlands, Nairobi' }),
|
|
26
|
+
Transform(trim),
|
|
27
|
+
IsString(),
|
|
28
|
+
MaxLength(200),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], SafetyAlertContextFactDto.prototype, "value", void 0);
|
|
31
|
+
/**
|
|
32
|
+
* What a responder needs to understand an automatic SOS at a glance, stored on
|
|
33
|
+
* the incident (`originContext`). Plain labelled facts rather than a feature
|
|
34
|
+
* specific schema, so the admin renders any safety feature's context the same
|
|
35
|
+
* way. Never a location history - the incident's trip has that.
|
|
36
|
+
*/
|
|
37
|
+
export class SafetyAlertContextDto {
|
|
38
|
+
}
|
|
39
|
+
__decorate([
|
|
40
|
+
ApiProperty({ maxLength: 500, example: 'Follow Me: no response to a possible-crash prompt.' }),
|
|
41
|
+
Transform(trim),
|
|
42
|
+
IsString(),
|
|
43
|
+
MinLength(1),
|
|
44
|
+
MaxLength(500),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], SafetyAlertContextDto.prototype, "summary", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
ApiProperty({ type: [SafetyAlertContextFactDto] }),
|
|
49
|
+
IsArray(),
|
|
50
|
+
ArrayMaxSize(20),
|
|
51
|
+
ValidateNested({ each: true }),
|
|
52
|
+
Type(() => SafetyAlertContextFactDto),
|
|
53
|
+
__metadata("design:type", Array)
|
|
54
|
+
], SafetyAlertContextDto.prototype, "facts", void 0);
|
|
55
|
+
//# sourceMappingURL=safety-alert-context.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safety-alert-context.dto.js","sourceRoot":"","sources":["../../../../../src/modules/safety/dtos/safety-alert-context.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAExG,MAAM,IAAI,GAAG,CAAC,EAAE,KAAK,EAAsB,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAEnG,MAAM,OAAO,yBAAyB;CAarC;AAPG;IALC,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IACtD,SAAS,CAAC,IAAI,CAAC;IACf,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;IACZ,SAAS,CAAC,EAAE,CAAC;;wDACC;AAMf;IAJC,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC9D,SAAS,CAAC,IAAI,CAAC;IACf,QAAQ,EAAE;IACV,SAAS,CAAC,GAAG,CAAC;;wDACA;AAGnB;;;;;GAKG;AACH,MAAM,OAAO,qBAAqB;CAcjC;AARG;IALC,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;IAC9F,SAAS,CAAC,IAAI,CAAC;IACf,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;IACZ,SAAS,CAAC,GAAG,CAAC;;sDACE;AAOjB;IALC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC;IAClD,OAAO,EAAE;IACT,YAAY,CAAC,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC;;oDACF"}
|
|
@@ -13,6 +13,7 @@ import { ArrayMaxSize, IsArray, IsBoolean, IsDateString, IsEnum, IsInt, IsNotEmp
|
|
|
13
13
|
import { GuardianAudienceDto } from '../../alert-dispatch/dtos/guardian-audience.dto';
|
|
14
14
|
import { SafetyCheckSosTrigger, SafetyFeature } from '../enums/safety-enums';
|
|
15
15
|
import { SafetyCheckLocationDto } from './safety-check.dto';
|
|
16
|
+
import { SafetyAlertContextDto } from './safety-alert-context.dto';
|
|
16
17
|
const trim = ({ value }) => (typeof value === 'string' ? value.trim() : value);
|
|
17
18
|
/**
|
|
18
19
|
* clarion-safety -> clarion-incident: raise the SOS for a safety feature.
|
|
@@ -104,6 +105,22 @@ __decorate([
|
|
|
104
105
|
IsOptional(),
|
|
105
106
|
__metadata("design:type", String)
|
|
106
107
|
], CreateSafetyAlertIncidentDto.prototype, "description", void 0);
|
|
108
|
+
__decorate([
|
|
109
|
+
ApiPropertyOptional({
|
|
110
|
+
format: 'uuid',
|
|
111
|
+
description: 'An existing clarion-chat conversation (Follow Me) the incident adopts instead of creating one, so its history carries over',
|
|
112
|
+
}),
|
|
113
|
+
IsUUID(),
|
|
114
|
+
IsOptional(),
|
|
115
|
+
__metadata("design:type", String)
|
|
116
|
+
], CreateSafetyAlertIncidentDto.prototype, "conversationId", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
ApiPropertyOptional({ type: SafetyAlertContextDto, description: 'What responders see about why the SOS was raised' }),
|
|
119
|
+
ValidateNested(),
|
|
120
|
+
Type(() => SafetyAlertContextDto),
|
|
121
|
+
IsOptional(),
|
|
122
|
+
__metadata("design:type", SafetyAlertContextDto)
|
|
123
|
+
], CreateSafetyAlertIncidentDto.prototype, "context", void 0);
|
|
107
124
|
/** clarion-safety -> clarion-workflow-manager: start the durable timer. Idempotent per check. */
|
|
108
125
|
export class StartSafetyCheckWorkflowDto {
|
|
109
126
|
}
|