tabletcommand-backend-models 7.1.1 → 7.2.1
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/build/helpers.js +5 -1
- package/build/helpers.js.map +1 -1
- package/build/index.js +2 -1
- package/build/index.js.map +1 -1
- package/build/models/action-log.js +6 -0
- package/build/models/action-log.js.map +1 -1
- package/build/models/agency.js +35 -0
- package/build/models/agency.js.map +1 -1
- package/build/models/arcgis-group.js +9 -1
- package/build/models/arcgis-group.js.map +1 -1
- package/build/models/assignment.js +21 -4
- package/build/models/assignment.js.map +1 -1
- package/build/models/battalion.js +39 -15
- package/build/models/battalion.js.map +1 -1
- package/build/models/beacon-log.js +5 -1
- package/build/models/beacon-log.js.map +1 -1
- package/build/models/cad-incident-block.js +7 -1
- package/build/models/cad-incident-block.js.map +1 -1
- package/build/models/cad-incident-stream.js +27 -1
- package/build/models/cad-incident-stream.js.map +1 -1
- package/build/models/cad-incident.js +98 -1
- package/build/models/cad-incident.js.map +1 -1
- package/build/models/cad-simulation.js +0 -2
- package/build/models/cad-simulation.js.map +1 -1
- package/build/models/cad-status-map.js +5 -1
- package/build/models/cad-status-map.js.map +1 -1
- package/build/models/cad-status.js +11 -2
- package/build/models/cad-status.js.map +1 -1
- package/build/models/cad-vehicle-status-history.js +41 -2
- package/build/models/cad-vehicle-status-history.js.map +1 -1
- package/build/models/cad-vehicle-status.js +44 -2
- package/build/models/cad-vehicle-status.js.map +1 -1
- package/build/models/cad-vehicle.js +30 -2
- package/build/models/cad-vehicle.js.map +1 -1
- package/build/models/chart-device-stats.js +7 -1
- package/build/models/chart-device-stats.js.map +1 -1
- package/build/models/chart-incident.js +12 -1
- package/build/models/chart-incident.js.map +1 -1
- package/build/models/chart-managed-incident.js +19 -1
- package/build/models/chart-managed-incident.js.map +1 -1
- package/build/models/chart-user.js +12 -1
- package/build/models/chart-user.js.map +1 -1
- package/build/models/checklist-item.js +0 -1
- package/build/models/checklist-item.js.map +1 -1
- package/build/models/checklist.js +26 -4
- package/build/models/checklist.js.map +1 -1
- package/build/models/csv-import.js +6 -0
- package/build/models/csv-import.js.map +1 -1
- package/build/models/department.js +129 -6
- package/build/models/department.js.map +1 -1
- package/build/models/device-mapping.js +16 -0
- package/build/models/device-mapping.js.map +1 -1
- package/build/models/esri.js +6 -0
- package/build/models/esri.js.map +1 -1
- package/build/models/incident-event.js +38 -6
- package/build/models/incident-event.js.map +1 -1
- package/build/models/incident-notified.js +20 -1
- package/build/models/incident-notified.js.map +1 -1
- package/build/models/incident-takeover.js +6 -1
- package/build/models/incident-takeover.js.map +1 -1
- package/build/models/location.js +117 -6
- package/build/models/location.js.map +1 -1
- package/build/models/mail-log.js +5 -0
- package/build/models/mail-log.js.map +1 -1
- package/build/models/managed-incident.js +67 -4
- package/build/models/managed-incident.js.map +1 -1
- package/build/models/mark43-incident-retry.js +0 -1
- package/build/models/mark43-incident-retry.js.map +1 -1
- package/build/models/message.js +19 -1
- package/build/models/message.js.map +1 -1
- package/build/models/monitor.js +15 -1
- package/build/models/monitor.js.map +1 -1
- package/build/models/personnel-import.js +74 -0
- package/build/models/personnel-import.js.map +1 -1
- package/build/models/personnel-known.js +8 -0
- package/build/models/personnel-known.js.map +1 -1
- package/build/models/rate-limit.js +6 -0
- package/build/models/rate-limit.js.map +1 -1
- package/build/models/remote-log-stream.js +0 -1
- package/build/models/remote-log-stream.js.map +1 -1
- package/build/models/remote-log.js +0 -1
- package/build/models/remote-log.js.map +1 -1
- package/build/models/schema/agency-saml.js +1 -1
- package/build/models/schema/agency-saml.js.map +1 -1
- package/build/models/schema/cad-incident.js +0 -1
- package/build/models/schema/cad-incident.js.map +1 -1
- package/build/models/session.js +44 -6
- package/build/models/session.js.map +1 -1
- package/build/models/template.js +17 -7
- package/build/models/template.js.map +1 -1
- package/build/models/user-device.js +17 -0
- package/build/models/user-device.js.map +1 -1
- package/build/models/user-registration.js +5 -1
- package/build/models/user-registration.js.map +1 -1
- package/build/models/user.js +59 -6
- package/build/models/user.js.map +1 -1
- package/build/models/validation-report.js +6 -1
- package/build/models/validation-report.js.map +1 -1
- package/build/test/location.js +1 -1
- package/build/test/location.js.map +1 -1
- package/build/test/mock.js +5 -2
- package/build/test/mock.js.map +1 -1
- package/cspell.json +1 -0
- package/definitions/helpers.d.ts +27 -26
- package/definitions/helpers.d.ts.map +1 -1
- package/definitions/index.d.ts +4 -4
- package/definitions/index.d.ts.map +1 -1
- package/definitions/models/action-log.d.ts.map +1 -1
- package/definitions/models/agency.d.ts.map +1 -1
- package/definitions/models/arcgis-group.d.ts.map +1 -1
- package/definitions/models/assignment.d.ts.map +1 -1
- package/definitions/models/battalion.d.ts.map +1 -1
- package/definitions/models/beacon-log.d.ts.map +1 -1
- package/definitions/models/cad-incident-block.d.ts.map +1 -1
- package/definitions/models/cad-incident-stream.d.ts.map +1 -1
- package/definitions/models/cad-incident.d.ts.map +1 -1
- package/definitions/models/cad-simulation.d.ts.map +1 -1
- package/definitions/models/cad-status-map.d.ts.map +1 -1
- package/definitions/models/cad-status.d.ts.map +1 -1
- package/definitions/models/cad-vehicle-status-history.d.ts.map +1 -1
- package/definitions/models/cad-vehicle-status.d.ts.map +1 -1
- package/definitions/models/cad-vehicle.d.ts.map +1 -1
- package/definitions/models/chart-device-stats.d.ts.map +1 -1
- package/definitions/models/chart-incident.d.ts.map +1 -1
- package/definitions/models/chart-managed-incident.d.ts.map +1 -1
- package/definitions/models/chart-user.d.ts.map +1 -1
- package/definitions/models/checklist-item.d.ts.map +1 -1
- package/definitions/models/checklist.d.ts.map +1 -1
- package/definitions/models/csv-import.d.ts.map +1 -1
- package/definitions/models/department.d.ts.map +1 -1
- package/definitions/models/device-mapping.d.ts.map +1 -1
- package/definitions/models/esri.d.ts.map +1 -1
- package/definitions/models/incident-event.d.ts.map +1 -1
- package/definitions/models/incident-notified.d.ts.map +1 -1
- package/definitions/models/incident-takeover.d.ts.map +1 -1
- package/definitions/models/location.d.ts.map +1 -1
- package/definitions/models/mail-log.d.ts.map +1 -1
- package/definitions/models/managed-incident.d.ts.map +1 -1
- package/definitions/models/mark43-incident-retry.d.ts.map +1 -1
- package/definitions/models/message.d.ts.map +1 -1
- package/definitions/models/monitor.d.ts.map +1 -1
- package/definitions/models/personnel-import.d.ts.map +1 -1
- package/definitions/models/personnel-known.d.ts.map +1 -1
- package/definitions/models/rate-limit.d.ts.map +1 -1
- package/definitions/models/remote-log-stream.d.ts.map +1 -1
- package/definitions/models/remote-log.d.ts.map +1 -1
- package/definitions/models/schema/cad-incident.d.ts.map +1 -1
- package/definitions/models/session.d.ts.map +1 -1
- package/definitions/models/template.d.ts.map +1 -1
- package/definitions/models/user-device.d.ts.map +1 -1
- package/definitions/models/user-registration.d.ts.map +1 -1
- package/definitions/models/user.d.ts.map +1 -1
- package/definitions/models/validation-report.d.ts.map +1 -1
- package/definitions/test/mock.d.ts.map +1 -1
- package/definitions/types/department.d.ts +14 -0
- package/definitions/types/department.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/helpers.ts +4 -0
- package/src/index.ts +2 -1
- package/src/models/action-log.ts +8 -0
- package/src/models/agency.ts +41 -0
- package/src/models/arcgis-group.ts +10 -1
- package/src/models/assignment.ts +24 -4
- package/src/models/battalion.ts +42 -16
- package/src/models/beacon-log.ts +6 -1
- package/src/models/cad-incident-block.ts +8 -1
- package/src/models/cad-incident-stream.ts +31 -1
- package/src/models/cad-incident.ts +111 -1
- package/src/models/cad-simulation.ts +0 -2
- package/src/models/cad-status-map.ts +6 -1
- package/src/models/cad-status.ts +13 -2
- package/src/models/cad-vehicle-status-history.ts +47 -2
- package/src/models/cad-vehicle-status.ts +51 -3
- package/src/models/cad-vehicle.ts +35 -2
- package/src/models/chart-device-stats.ts +8 -1
- package/src/models/chart-incident.ts +14 -1
- package/src/models/chart-managed-incident.ts +22 -1
- package/src/models/chart-user.ts +14 -1
- package/src/models/checklist-item.ts +0 -1
- package/src/models/checklist.ts +28 -4
- package/src/models/csv-import.ts +7 -0
- package/src/models/department.ts +141 -8
- package/src/models/device-mapping.ts +19 -0
- package/src/models/esri.ts +7 -0
- package/src/models/incident-event.ts +45 -6
- package/src/models/incident-notified.ts +23 -1
- package/src/models/incident-takeover.ts +7 -1
- package/src/models/location.ts +133 -8
- package/src/models/mail-log.ts +6 -0
- package/src/models/managed-incident.ts +75 -4
- package/src/models/mark43-incident-retry.ts +0 -1
- package/src/models/message.ts +22 -1
- package/src/models/monitor.ts +17 -1
- package/src/models/personnel-import.ts +84 -0
- package/src/models/personnel-known.ts +9 -0
- package/src/models/rate-limit.ts +7 -0
- package/src/models/remote-log-stream.ts +0 -1
- package/src/models/remote-log.ts +0 -1
- package/src/models/schema/agency-saml.ts +1 -1
- package/src/models/schema/cad-incident.ts +0 -1
- package/src/models/session.ts +49 -6
- package/src/models/template.ts +17 -7
- package/src/models/user-device.ts +20 -0
- package/src/models/user-registration.ts +6 -1
- package/src/models/user.ts +65 -7
- package/src/models/validation-report.ts +7 -1
- package/src/test/location.ts +2 -2
- package/src/test/mock.ts +7 -2
- package/src/types/department.ts +17 -1
- package/test.sh +1 -1
@@ -34,18 +34,15 @@ export default async function CADVehicleStatusModule(mongoose: MongooseModule) {
|
|
34
34
|
id: false,
|
35
35
|
});
|
36
36
|
|
37
|
-
|
38
37
|
const modelSchema = new Schema<CADVehicleStatusType>({
|
39
38
|
uuid: {
|
40
39
|
type: String,
|
41
|
-
index: true,
|
42
40
|
default: uuid.v4,
|
43
41
|
},
|
44
42
|
departmentId: {
|
45
43
|
type: String,
|
46
44
|
default: "",
|
47
45
|
required: true,
|
48
|
-
index: true,
|
49
46
|
},
|
50
47
|
vehicleId: {
|
51
48
|
type: String,
|
@@ -142,6 +139,57 @@ export default async function CADVehicleStatusModule(mongoose: MongooseModule) {
|
|
142
139
|
autoIndex: false,
|
143
140
|
});
|
144
141
|
|
142
|
+
modelSchema.index({
|
143
|
+
departmentId: 1,
|
144
|
+
}, {
|
145
|
+
name: "departmentId_1",
|
146
|
+
});
|
147
|
+
|
148
|
+
modelSchema.index({
|
149
|
+
departmentId: 1,
|
150
|
+
modified_unix_date: 1,
|
151
|
+
}, {
|
152
|
+
name: "departmentId_1_modified_unix_date_1",
|
153
|
+
});
|
154
|
+
|
155
|
+
modelSchema.index({
|
156
|
+
departmentId: 1,
|
157
|
+
owner: 1,
|
158
|
+
modifiedDate: 1
|
159
|
+
}, {
|
160
|
+
name: "departmentId_1_owner_1_modifiedDate_1",
|
161
|
+
});
|
162
|
+
|
163
|
+
modelSchema.index({
|
164
|
+
departmentId: 1,
|
165
|
+
owner: 1,
|
166
|
+
modified: -1
|
167
|
+
}, {
|
168
|
+
name: "departmentId_1_owner_1_modified_-1",
|
169
|
+
});
|
170
|
+
|
171
|
+
modelSchema.index({
|
172
|
+
departmentId: 1,
|
173
|
+
radioName: 1
|
174
|
+
}, {
|
175
|
+
name: "departmentId_1_radioName_1",
|
176
|
+
});
|
177
|
+
|
178
|
+
modelSchema.index({
|
179
|
+
departmentId: 1,
|
180
|
+
vehicleId: 1
|
181
|
+
}, {
|
182
|
+
name: "departmentId_1_vehicleId_1_unique",
|
183
|
+
unique: true,
|
184
|
+
});
|
185
|
+
|
186
|
+
modelSchema.index({
|
187
|
+
uuid: 1,
|
188
|
+
}, {
|
189
|
+
name: "uuid_1_unique",
|
190
|
+
unique: true,
|
191
|
+
});
|
192
|
+
|
145
193
|
return mongoose.model<CADVehicleStatus>("CADVehicleStatus", modelSchema, "massive_cad_vehicle_status", { overwriteModels: true });
|
146
194
|
}
|
147
195
|
|
@@ -29,14 +29,12 @@ export default async function CADVehicleModule(mongoose: MongooseModule) {
|
|
29
29
|
// Internal
|
30
30
|
uuid: {
|
31
31
|
type: String,
|
32
|
-
index: true,
|
33
32
|
default: uuid.v4,
|
34
33
|
},
|
35
34
|
departmentId: {
|
36
35
|
type: String,
|
37
36
|
default: "",
|
38
37
|
required: true,
|
39
|
-
index: true,
|
40
38
|
},
|
41
39
|
modifiedDate: {
|
42
40
|
type: Number,
|
@@ -86,6 +84,41 @@ export default async function CADVehicleModule(mongoose: MongooseModule) {
|
|
86
84
|
autoIndex: false,
|
87
85
|
});
|
88
86
|
|
87
|
+
modelSchema.index({
|
88
|
+
departmentId: 1,
|
89
|
+
modifiedDate: 1
|
90
|
+
}, {
|
91
|
+
name: "departmentId_1_modifiedDate_1",
|
92
|
+
});
|
93
|
+
|
94
|
+
modelSchema.index({
|
95
|
+
departmentId: 1,
|
96
|
+
modified: 1
|
97
|
+
}, {
|
98
|
+
name: "departmentId_1_modified_1",
|
99
|
+
});
|
100
|
+
|
101
|
+
modelSchema.index({
|
102
|
+
departmentId: 1,
|
103
|
+
radioName: 1
|
104
|
+
}, {
|
105
|
+
name: "departmentId_1_radioName_1",
|
106
|
+
});
|
107
|
+
|
108
|
+
modelSchema.index({
|
109
|
+
departmentId: 1,
|
110
|
+
vehicleId: 1
|
111
|
+
}, {
|
112
|
+
name: "departmentId_1_vehicleId_1",
|
113
|
+
});
|
114
|
+
|
115
|
+
modelSchema.index({
|
116
|
+
uuid: 1,
|
117
|
+
}, {
|
118
|
+
name: "uuid_1_unique",
|
119
|
+
unique: true,
|
120
|
+
});
|
121
|
+
|
89
122
|
return mongoose.model<CADVehicle>("CADVehicle", modelSchema, "massive_cad_vehicle", { overwriteModels: true });
|
90
123
|
}
|
91
124
|
|
@@ -62,7 +62,6 @@ export default async function ChartDeviceStatsModule(mongoose: MongooseModule) {
|
|
62
62
|
type: String,
|
63
63
|
default: "",
|
64
64
|
required: true,
|
65
|
-
index: true,
|
66
65
|
},
|
67
66
|
items: {
|
68
67
|
type: [ChartItem],
|
@@ -75,6 +74,14 @@ export default async function ChartDeviceStatsModule(mongoose: MongooseModule) {
|
|
75
74
|
}
|
76
75
|
});
|
77
76
|
|
77
|
+
modelSchema.index({
|
78
|
+
dateAt: 1,
|
79
|
+
"items.email": 1,
|
80
|
+
departmentId: 1
|
81
|
+
}, {
|
82
|
+
name: "dateAt_1_items_email_1_departmentId_1",
|
83
|
+
});
|
84
|
+
|
78
85
|
return mongoose.model<ChartDeviceStats>("ChartDeviceStat", modelSchema, "massive_chart_device_stat", { overwriteModels: true });
|
79
86
|
}
|
80
87
|
|
@@ -38,7 +38,6 @@ export default async function ChartIncidentModule(mongoose: MongooseModule) {
|
|
38
38
|
type: String,
|
39
39
|
default: "",
|
40
40
|
required: true,
|
41
|
-
index: true,
|
42
41
|
},
|
43
42
|
count: {
|
44
43
|
type: Number,
|
@@ -55,6 +54,20 @@ export default async function ChartIncidentModule(mongoose: MongooseModule) {
|
|
55
54
|
}
|
56
55
|
});
|
57
56
|
|
57
|
+
modelSchema.index({
|
58
|
+
departmentId: 1,
|
59
|
+
date: 1,
|
60
|
+
}, {
|
61
|
+
name: "departmentId1_date_1",
|
62
|
+
});
|
63
|
+
|
64
|
+
modelSchema.index({
|
65
|
+
departmentId: 1,
|
66
|
+
dateAt: -1
|
67
|
+
}, {
|
68
|
+
name: "departmentId_1_dateAt_-1",
|
69
|
+
});
|
70
|
+
|
58
71
|
return mongoose.model<ChartIncident>("ChartIncident", modelSchema, "massive_chart_incident", { overwriteModels: true });
|
59
72
|
}
|
60
73
|
|
@@ -39,7 +39,6 @@ export default async function ChartManagedIncidentModule(mongoose: MongooseModul
|
|
39
39
|
type: String,
|
40
40
|
default: "",
|
41
41
|
required: true,
|
42
|
-
index: true,
|
43
42
|
},
|
44
43
|
userId: {
|
45
44
|
type: String,
|
@@ -61,6 +60,28 @@ export default async function ChartManagedIncidentModule(mongoose: MongooseModul
|
|
61
60
|
}
|
62
61
|
});
|
63
62
|
|
63
|
+
modelSchema.index({
|
64
|
+
departmentId: 1,
|
65
|
+
dateAt: -1
|
66
|
+
}, {
|
67
|
+
name: "departmentId_1_dateAt_-1",
|
68
|
+
});
|
69
|
+
|
70
|
+
modelSchema.index({
|
71
|
+
departmentId: 1,
|
72
|
+
date: 1,
|
73
|
+
}, {
|
74
|
+
name: "departmentId_1_date_1",
|
75
|
+
});
|
76
|
+
|
77
|
+
modelSchema.index({
|
78
|
+
departmentId: 1,
|
79
|
+
userId: 1,
|
80
|
+
dateAt: -1
|
81
|
+
}, {
|
82
|
+
name: "departmentId_1_userId_1_dateAt_-1",
|
83
|
+
});
|
84
|
+
|
64
85
|
return mongoose.model<ChartManagedIncident>("ChartManagedIncident", modelSchema, "massive_chart_managed_incident", { overwriteModels: true });
|
65
86
|
}
|
66
87
|
|
package/src/models/chart-user.ts
CHANGED
@@ -24,7 +24,6 @@ export default async function ChartUserModule(mongoose: MongooseModule) {
|
|
24
24
|
type: String,
|
25
25
|
default: "",
|
26
26
|
required: true,
|
27
|
-
index: true,
|
28
27
|
},
|
29
28
|
count: {
|
30
29
|
type: Number,
|
@@ -41,6 +40,20 @@ export default async function ChartUserModule(mongoose: MongooseModule) {
|
|
41
40
|
}
|
42
41
|
});
|
43
42
|
|
43
|
+
modelSchema.index({
|
44
|
+
departmentId: 1,
|
45
|
+
dateAt: -1,
|
46
|
+
}, {
|
47
|
+
name: "departmentId_1_dateAt_-1",
|
48
|
+
});
|
49
|
+
|
50
|
+
modelSchema.index({
|
51
|
+
departmentId: 1,
|
52
|
+
date: 1,
|
53
|
+
}, {
|
54
|
+
name: "departmentId_1_date_1",
|
55
|
+
});
|
56
|
+
|
44
57
|
return mongoose.model<ChartUser>("ChartUser", modelSchema, "massive_chart_user", { overwriteModels: true });
|
45
58
|
}
|
46
59
|
|
package/src/models/checklist.ts
CHANGED
@@ -53,7 +53,6 @@ export function ChecklistSchema(mongoose: MongooseModule) {
|
|
53
53
|
departmentId: {
|
54
54
|
type: String,
|
55
55
|
required: true,
|
56
|
-
index: true,
|
57
56
|
},
|
58
57
|
active: {
|
59
58
|
type: Boolean,
|
@@ -74,17 +73,42 @@ export function ChecklistSchema(mongoose: MongooseModule) {
|
|
74
73
|
}
|
75
74
|
}, {
|
76
75
|
autoIndex: false,
|
76
|
+
toJSON: {
|
77
|
+
virtuals: true,
|
78
|
+
versionKey: false,
|
79
|
+
}
|
77
80
|
});
|
78
81
|
modelSchema.virtual("id").get(function(this: MongooseDocument) {
|
79
82
|
// tslint:disable-next-line: no-unsafe-any
|
80
83
|
return this._id.toString();
|
81
84
|
});
|
82
85
|
|
83
|
-
modelSchema.
|
84
|
-
|
85
|
-
|
86
|
+
modelSchema.index({
|
87
|
+
departmentId: 1,
|
88
|
+
isMandatory: 1
|
89
|
+
}, {
|
90
|
+
name: "departmentId_1_isMandatory_1",
|
91
|
+
});
|
92
|
+
|
93
|
+
modelSchema.index({
|
94
|
+
departmentId: 1,
|
95
|
+
modified_date: 1,
|
96
|
+
}, {
|
97
|
+
name: "departmentId_1_modified_date_1",
|
98
|
+
});
|
99
|
+
|
100
|
+
modelSchema.index({
|
101
|
+
departmentId: 1,
|
102
|
+
userId: 1
|
103
|
+
}, {
|
104
|
+
name: "deptId_1_userId_1",
|
86
105
|
});
|
87
106
|
|
107
|
+
modelSchema.index({
|
108
|
+
uuid: 1,
|
109
|
+
}, {
|
110
|
+
name: "uuid_1",
|
111
|
+
});
|
88
112
|
|
89
113
|
return modelSchema;
|
90
114
|
}
|
package/src/models/csv-import.ts
CHANGED
@@ -71,6 +71,13 @@ export default async function CSVImportModule(mongoose: MongooseModule) {
|
|
71
71
|
autoIndex: false,
|
72
72
|
});
|
73
73
|
|
74
|
+
modelSchema.index({
|
75
|
+
batchId: 1,
|
76
|
+
}, {
|
77
|
+
name: "batchId_1",
|
78
|
+
unique: true,
|
79
|
+
});
|
80
|
+
|
74
81
|
return mongoose.model<CSVImport>("CSVImport", modelSchema, "massive_csv_import", { overwriteModels: true });
|
75
82
|
}
|
76
83
|
|
package/src/models/department.ts
CHANGED
@@ -21,6 +21,8 @@ import {
|
|
21
21
|
ForwardFieldsType,
|
22
22
|
ForwardingConfigType,
|
23
23
|
ForwardingConnectionType,
|
24
|
+
VehicleStatusWebhookConnectionType,
|
25
|
+
VehicleStatusWebhookConfigType,
|
24
26
|
GSTConfigType,
|
25
27
|
IncidentReplayType,
|
26
28
|
IncidentTypeType,
|
@@ -194,6 +196,11 @@ const ForwardingConfigDefault = {
|
|
194
196
|
"connections": [],
|
195
197
|
};
|
196
198
|
|
199
|
+
const VehicleStatusWebhookConfigDefault = {
|
200
|
+
"enabled": false,
|
201
|
+
"connections": [],
|
202
|
+
};
|
203
|
+
|
197
204
|
const IncidentReplayDefault = {
|
198
205
|
"enabled": false,
|
199
206
|
"replays": [],
|
@@ -335,6 +342,51 @@ const ForwardFieldsDefault = [
|
|
335
342
|
}
|
336
343
|
];
|
337
344
|
|
345
|
+
const VehicleStatusWebhookFieldsDefault = [
|
346
|
+
{
|
347
|
+
"key": "responseTime",
|
348
|
+
"value": "responseTime",
|
349
|
+
"required": true,
|
350
|
+
"enabled": true,
|
351
|
+
"transformationRequired": false,
|
352
|
+
},
|
353
|
+
{
|
354
|
+
"key": "responseTimeAt",
|
355
|
+
"value": "responseTimeAt",
|
356
|
+
"required": true,
|
357
|
+
"enabled": true,
|
358
|
+
"transformationRequired": false,
|
359
|
+
},
|
360
|
+
{
|
361
|
+
"key": "radioName",
|
362
|
+
"value": "radioName",
|
363
|
+
"required": true,
|
364
|
+
"enabled": true,
|
365
|
+
"transformationRequired": false,
|
366
|
+
},
|
367
|
+
{
|
368
|
+
"key": "vehicleId",
|
369
|
+
"value": "vehicleId",
|
370
|
+
"required": true,
|
371
|
+
"enabled": true,
|
372
|
+
"transformationRequired": false,
|
373
|
+
},
|
374
|
+
{
|
375
|
+
"key": "statusCode",
|
376
|
+
"value": "statusCode",
|
377
|
+
"required": true,
|
378
|
+
"enabled": true,
|
379
|
+
"transformationRequired": false,
|
380
|
+
},
|
381
|
+
{
|
382
|
+
"key": "status",
|
383
|
+
"value": "status",
|
384
|
+
"required": true,
|
385
|
+
"enabled": true,
|
386
|
+
"transformationRequired": false,
|
387
|
+
}
|
388
|
+
];
|
389
|
+
|
338
390
|
const SamsaraConfigurationDefault = {
|
339
391
|
enabled: false,
|
340
392
|
token: "",
|
@@ -617,6 +669,40 @@ export default async function DepartmentModule(mongoose: MongooseModule) {
|
|
617
669
|
id: false,
|
618
670
|
});
|
619
671
|
|
672
|
+
const VehicleStatusWebhookConnection = new Schema<VehicleStatusWebhookConnectionType>({
|
673
|
+
active: {
|
674
|
+
type: Boolean,
|
675
|
+
default: false,
|
676
|
+
},
|
677
|
+
connectionType: {
|
678
|
+
type: String,
|
679
|
+
default: "",
|
680
|
+
},
|
681
|
+
fields: {
|
682
|
+
type: [ForwardFields],
|
683
|
+
default: VehicleStatusWebhookFieldsDefault,
|
684
|
+
},
|
685
|
+
apiUrl: {
|
686
|
+
type: String,
|
687
|
+
default: "",
|
688
|
+
},
|
689
|
+
apiKey: {
|
690
|
+
type: String,
|
691
|
+
default: "",
|
692
|
+
},
|
693
|
+
authType: {
|
694
|
+
type: String,
|
695
|
+
default: "",
|
696
|
+
},
|
697
|
+
description: {
|
698
|
+
type: String,
|
699
|
+
default: "",
|
700
|
+
},
|
701
|
+
}, {
|
702
|
+
_id: false,
|
703
|
+
id: false,
|
704
|
+
});
|
705
|
+
|
620
706
|
const IntterraConfig = new Schema<IntterraConfigType>({
|
621
707
|
enabled: {
|
622
708
|
type: Boolean,
|
@@ -650,6 +736,21 @@ export default async function DepartmentModule(mongoose: MongooseModule) {
|
|
650
736
|
id: false,
|
651
737
|
});
|
652
738
|
|
739
|
+
const VehicleStatusWebhookConfig = new Schema<VehicleStatusWebhookConfigType>({
|
740
|
+
enabled: {
|
741
|
+
type: Boolean,
|
742
|
+
default: false,
|
743
|
+
},
|
744
|
+
connections: {
|
745
|
+
type: [VehicleStatusWebhookConnection],
|
746
|
+
default: [],
|
747
|
+
},
|
748
|
+
}, {
|
749
|
+
_id: false,
|
750
|
+
id: false,
|
751
|
+
});
|
752
|
+
|
753
|
+
|
653
754
|
const SkymiraConfig = new Schema<SkymiraConfigType>({
|
654
755
|
enabled: {
|
655
756
|
type: Boolean,
|
@@ -1639,20 +1740,52 @@ export default async function DepartmentModule(mongoose: MongooseModule) {
|
|
1639
1740
|
type: ForwardingConfig,
|
1640
1741
|
default: ForwardingConfigDefault,
|
1641
1742
|
},
|
1743
|
+
vehicleStatusWebhook: {
|
1744
|
+
type: VehicleStatusWebhookConfig,
|
1745
|
+
default: VehicleStatusWebhookConfigDefault,
|
1746
|
+
},
|
1642
1747
|
}, {
|
1643
|
-
|
1644
|
-
|
1748
|
+
autoIndex: false,
|
1749
|
+
timestamps: {
|
1645
1750
|
updatedAt: "modified",
|
1751
|
+
},
|
1752
|
+
toJSON: {
|
1753
|
+
virtuals: true,
|
1754
|
+
versionKey: false,
|
1646
1755
|
}
|
1647
1756
|
});
|
1648
1757
|
|
1649
|
-
modelSchema.
|
1650
|
-
|
1758
|
+
modelSchema.index({
|
1759
|
+
apikey: 1,
|
1760
|
+
}, {
|
1761
|
+
name: "apikey_1",
|
1762
|
+
unique: true,
|
1763
|
+
});
|
1764
|
+
|
1765
|
+
modelSchema.index({
|
1766
|
+
department: 1,
|
1767
|
+
}, {
|
1768
|
+
name: "department_1_unique",
|
1769
|
+
unique: true,
|
1651
1770
|
});
|
1652
1771
|
|
1653
|
-
modelSchema.
|
1654
|
-
|
1655
|
-
|
1772
|
+
modelSchema.index({
|
1773
|
+
rtsChannelPrefix: 1,
|
1774
|
+
}, {
|
1775
|
+
name: "rtsChannelPrefix_1_unique",
|
1776
|
+
unique: true,
|
1777
|
+
});
|
1778
|
+
|
1779
|
+
// TODO: Create this
|
1780
|
+
// modelSchema.index({
|
1781
|
+
// uuid: 1,
|
1782
|
+
// }, {
|
1783
|
+
// name: "uuid_1_unique",
|
1784
|
+
// unique: true,
|
1785
|
+
// });
|
1786
|
+
|
1787
|
+
modelSchema.virtual("id").get(function(this: Department) {
|
1788
|
+
return this._id.toHexString();
|
1656
1789
|
});
|
1657
1790
|
|
1658
1791
|
modelSchema.plugin(mongooseLeanVirtuals);
|
@@ -1660,4 +1793,4 @@ export default async function DepartmentModule(mongoose: MongooseModule) {
|
|
1660
1793
|
return mongoose.model<Department>("Department", modelSchema, "massive_admin", { overwriteModels: true });
|
1661
1794
|
}
|
1662
1795
|
|
1663
|
-
export interface DepartmentModel extends Model<Department> { }
|
1796
|
+
export interface DepartmentModel extends Model<Department> { }
|
@@ -80,6 +80,25 @@ export default async function DeviceMappingModule(mongoose: MongooseModule) {
|
|
80
80
|
autoIndex: false,
|
81
81
|
});
|
82
82
|
|
83
|
+
modelSchema.index({
|
84
|
+
departmentId: 1,
|
85
|
+
modified_unix_date: 1
|
86
|
+
}, {
|
87
|
+
name: "departmentId_1_modified_unix_date_1",
|
88
|
+
});
|
89
|
+
|
90
|
+
modelSchema.index({
|
91
|
+
deviceId: 1,
|
92
|
+
}, {
|
93
|
+
name: "deviceId_1",
|
94
|
+
});
|
95
|
+
|
96
|
+
modelSchema.index({
|
97
|
+
remoteAddress: 1,
|
98
|
+
}, {
|
99
|
+
name: "remoteAddress_1",
|
100
|
+
});
|
101
|
+
|
83
102
|
return mongoose.model<DeviceMapping>("DeviceMapping", modelSchema, "massive_device_mapping", { overwriteModels: true });
|
84
103
|
}
|
85
104
|
|
package/src/models/esri.ts
CHANGED
@@ -44,13 +44,11 @@ export function IncidentEventSchema(mongoose: MongooseModule) {
|
|
44
44
|
type: String,
|
45
45
|
default: "",
|
46
46
|
required: true,
|
47
|
-
index: true,
|
48
47
|
},
|
49
48
|
IncidentNumber: {
|
50
49
|
type: String,
|
51
50
|
default: "",
|
52
51
|
required: true,
|
53
|
-
index: true,
|
54
52
|
},
|
55
53
|
modified_unix_date: {
|
56
54
|
type: Number,
|
@@ -113,10 +111,10 @@ export function IncidentEventSchema(mongoose: MongooseModule) {
|
|
113
111
|
},
|
114
112
|
}, {
|
115
113
|
autoIndex: false,
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
114
|
+
toJSON: {
|
115
|
+
virtuals: true,
|
116
|
+
versionKey: false,
|
117
|
+
}
|
120
118
|
});
|
121
119
|
|
122
120
|
modelSchema.virtual("id").get(function(this: MongooseDocument) {
|
@@ -124,12 +122,53 @@ export function IncidentEventSchema(mongoose: MongooseModule) {
|
|
124
122
|
return this._id.toString();
|
125
123
|
});
|
126
124
|
|
125
|
+
// Indexes are not defined here because this type is reused in CADIncident
|
126
|
+
|
127
127
|
modelSchema.plugin(mongooseLeanVirtuals);
|
128
128
|
return modelSchema;
|
129
129
|
}
|
130
130
|
|
131
131
|
export default async function IncidentEventModule(mongoose: MongooseModule) {
|
132
132
|
const modelSchema = IncidentEventSchema(mongoose);
|
133
|
+
|
134
|
+
// Define indexes here
|
135
|
+
modelSchema.index({
|
136
|
+
departmentId: 1,
|
137
|
+
IncidentNumber: 1
|
138
|
+
}, {
|
139
|
+
name: "departmentId_1_IncidentNumber_1",
|
140
|
+
});
|
141
|
+
|
142
|
+
modelSchema.index({
|
143
|
+
departmentId: 1,
|
144
|
+
IncidentNumber: 1,
|
145
|
+
modified_unix_date: 1,
|
146
|
+
}, {
|
147
|
+
name: "departmentId_1_IncidentNumber_1_modified_unix_date_1",
|
148
|
+
});
|
149
|
+
|
150
|
+
modelSchema.index({
|
151
|
+
departmentId: 1,
|
152
|
+
archived: 1
|
153
|
+
}, {
|
154
|
+
name: "departmentId_1_archived_1",
|
155
|
+
});
|
156
|
+
|
157
|
+
modelSchema.index({
|
158
|
+
departmentId: 1,
|
159
|
+
modified_unix_date: 1,
|
160
|
+
archived: 1
|
161
|
+
}, {
|
162
|
+
name: "departmentId_1_modified_unix_date_1_archived_1",
|
163
|
+
});
|
164
|
+
|
165
|
+
modelSchema.index({
|
166
|
+
departmentId: 1,
|
167
|
+
type: 1
|
168
|
+
}, {
|
169
|
+
name: "departmentId_1_type_1",
|
170
|
+
});
|
171
|
+
|
133
172
|
return mongoose.model<IncidentEvent>("IncidentEvent", modelSchema, "massive_incident_event", { overwriteModels: true });
|
134
173
|
}
|
135
174
|
|
@@ -51,7 +51,6 @@ export default async function IncidentNotifiedModule(mongoose: MongooseModule) {
|
|
51
51
|
type: String,
|
52
52
|
default: "",
|
53
53
|
required: true,
|
54
|
-
index: true,
|
55
54
|
},
|
56
55
|
IncidentNumber: {
|
57
56
|
type: String,
|
@@ -81,6 +80,29 @@ export default async function IncidentNotifiedModule(mongoose: MongooseModule) {
|
|
81
80
|
autoIndex: false,
|
82
81
|
});
|
83
82
|
|
83
|
+
modelSchema.index({
|
84
|
+
departmentId: 1,
|
85
|
+
updated: 1
|
86
|
+
}, {
|
87
|
+
name: "departmentId_1_updated_1",
|
88
|
+
});
|
89
|
+
|
90
|
+
// TODO: Review this
|
91
|
+
// modelSchema.index({
|
92
|
+
// departmentId: 1,
|
93
|
+
// IncidentNumber: 1
|
94
|
+
// }, {
|
95
|
+
// name: "departmentId_1_IncidentNumber_1",
|
96
|
+
// });
|
97
|
+
|
98
|
+
modelSchema.index({
|
99
|
+
departmentId: 1,
|
100
|
+
IncidentNumber: 1
|
101
|
+
}, {
|
102
|
+
name: "departmentId_1_IncidentNumber_1_unique",
|
103
|
+
unique: true,
|
104
|
+
});
|
105
|
+
|
84
106
|
return mongoose.model<IncidentNotified>("IncidentNotified", modelSchema, "massive_incident_notified", { overwriteModels: true });
|
85
107
|
}
|
86
108
|
|