tabletcommand-backend-models 7.1.1 → 7.2.0
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 +31 -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/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 +35 -7
- 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/test.sh +1 -1
@@ -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
|
|
@@ -19,7 +19,6 @@ export default async function IncidentTakeoverModule(mongoose: MongooseModule) {
|
|
19
19
|
type: String,
|
20
20
|
default: "",
|
21
21
|
required: true,
|
22
|
-
index: true,
|
23
22
|
},
|
24
23
|
uuid: {
|
25
24
|
type: String,
|
@@ -74,6 +73,13 @@ export default async function IncidentTakeoverModule(mongoose: MongooseModule) {
|
|
74
73
|
autoIndex: false,
|
75
74
|
});
|
76
75
|
|
76
|
+
modelSchema.index({
|
77
|
+
departmentId: 1,
|
78
|
+
incident_id: 1
|
79
|
+
}, {
|
80
|
+
name: "departmentId_1_incident_id_1",
|
81
|
+
});
|
82
|
+
|
77
83
|
return mongoose.model<IncidentTakeover>("IncidentTakeover", modelSchema, "massive_incident_takeover", { overwriteModels: true });
|
78
84
|
}
|
79
85
|
|
package/src/models/location.ts
CHANGED
@@ -20,7 +20,6 @@ export default async function LocationModule(mongoose: MongooseModule) {
|
|
20
20
|
const Color = ColorModule(mongoose);
|
21
21
|
const GeoJSONPoint = GeoJSONPointModule(mongoose);
|
22
22
|
|
23
|
-
|
24
23
|
const modelSchema = new Schema<LocationType>({
|
25
24
|
_id: {
|
26
25
|
type: Schema.Types.ObjectId,
|
@@ -30,7 +29,6 @@ export default async function LocationModule(mongoose: MongooseModule) {
|
|
30
29
|
type: String,
|
31
30
|
default: "",
|
32
31
|
required: true,
|
33
|
-
index: true,
|
34
32
|
},
|
35
33
|
userId: {
|
36
34
|
type: String,
|
@@ -183,11 +181,10 @@ export default async function LocationModule(mongoose: MongooseModule) {
|
|
183
181
|
},
|
184
182
|
}, {
|
185
183
|
autoIndex: false,
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
versionKey: false,
|
184
|
+
toJSON: {
|
185
|
+
virtuals: true,
|
186
|
+
versionKey: false,
|
187
|
+
}
|
191
188
|
});
|
192
189
|
|
193
190
|
modelSchema.virtual("id").get(function(this: MongooseDocument) {
|
@@ -212,12 +209,140 @@ export default async function LocationModule(mongoose: MongooseModule) {
|
|
212
209
|
return location;
|
213
210
|
});
|
214
211
|
|
212
|
+
modelSchema.index({
|
213
|
+
active: 1,
|
214
|
+
shared: 1,
|
215
|
+
departmentId: 1,
|
216
|
+
movedAt: 1
|
217
|
+
}, {
|
218
|
+
name: "active_1_shared_1_departmentId_1_movedAt_1",
|
219
|
+
});
|
220
|
+
|
221
|
+
modelSchema.index({
|
222
|
+
departmentId: 1,
|
223
|
+
active: 1,
|
224
|
+
movedAt: 1
|
225
|
+
}, {
|
226
|
+
name: "departmentId_1_active_1_movedAt_1",
|
227
|
+
});
|
228
|
+
|
229
|
+
modelSchema.index({
|
230
|
+
departmentId: 1,
|
231
|
+
agencyCode: 1,
|
232
|
+
agencyName: 1,
|
233
|
+
modified: 1
|
234
|
+
}, {
|
235
|
+
name: "departmentId_1_agencyCode_1_agencyName_1_modified_1",
|
236
|
+
});
|
237
|
+
|
238
|
+
modelSchema.index({
|
239
|
+
departmentId: 1,
|
240
|
+
modified: 1,
|
241
|
+
}, {
|
242
|
+
name: "departmentId_1_modified_1",
|
243
|
+
});
|
244
|
+
|
245
|
+
modelSchema.index({
|
246
|
+
departmentId: 1,
|
247
|
+
modified: 1,
|
248
|
+
movedAt: 1,
|
249
|
+
}, {
|
250
|
+
name: "departmentId_1_modified_1_movedAt_1",
|
251
|
+
});
|
252
|
+
|
253
|
+
modelSchema.index({
|
254
|
+
departmentId: 1,
|
255
|
+
opAreaCode: 1
|
256
|
+
}, {
|
257
|
+
name: "departmentId_1_opAreaCode_1",
|
258
|
+
});
|
259
|
+
|
260
|
+
modelSchema.index({
|
261
|
+
departmentId: 1,
|
262
|
+
opAreaName: 1
|
263
|
+
}, {
|
264
|
+
name: "departmentId_1_opAreaName_1",
|
265
|
+
});
|
266
|
+
|
267
|
+
modelSchema.index({
|
268
|
+
departmentId: 1,
|
269
|
+
session: 1,
|
270
|
+
device_type: 1
|
271
|
+
}, {
|
272
|
+
name: "departmentId_1_session_1_deviceType_1_unique",
|
273
|
+
unique: true,
|
274
|
+
});
|
275
|
+
|
276
|
+
modelSchema.index({
|
277
|
+
departmentId: 1,
|
278
|
+
shared: 1
|
279
|
+
}, {
|
280
|
+
name: "departmentId_1_shared_1",
|
281
|
+
});
|
282
|
+
|
283
|
+
modelSchema.index({
|
284
|
+
departmentId: 1,
|
285
|
+
state: 1
|
286
|
+
}, {
|
287
|
+
name: "departmentId_1_state_1",
|
288
|
+
});
|
289
|
+
|
290
|
+
modelSchema.index({
|
291
|
+
departmentId: 1,
|
292
|
+
username: 1
|
293
|
+
}, {
|
294
|
+
name: "departmentId_1_username_1",
|
295
|
+
});
|
296
|
+
|
297
|
+
modelSchema.index({
|
298
|
+
departmentId: 1,
|
299
|
+
device_type: 1,
|
300
|
+
userId: 1,
|
301
|
+
active: 1
|
302
|
+
}, {
|
303
|
+
name: "departmentId_deviceType_userId_active",
|
304
|
+
});
|
305
|
+
|
306
|
+
modelSchema.index({
|
307
|
+
esriId: 1,
|
308
|
+
modified: 1
|
309
|
+
}, {
|
310
|
+
name: "esriId_1_modified_1",
|
311
|
+
});
|
312
|
+
|
313
|
+
modelSchema.index({
|
314
|
+
session: 1,
|
315
|
+
userId: 1
|
316
|
+
}, {
|
317
|
+
name: "session_1_userId_1",
|
318
|
+
});
|
319
|
+
|
215
320
|
// Create GeoJSON index
|
216
321
|
modelSchema.index({
|
322
|
+
// This seems to need to be the first position, otherwise the query plan selects the wrong index (?)
|
217
323
|
locationGeoJSON: "2dsphere",
|
218
324
|
shared: 1,
|
219
|
-
departmentId: 1,
|
220
325
|
modified: 1,
|
326
|
+
movedAt: 1,
|
327
|
+
// departmentId: 1,
|
328
|
+
}, {
|
329
|
+
name: "shared_1_modified_1_movedAt_1_locationGeoJSON_2dsphere",
|
330
|
+
"2dsphereIndexVersion": 3
|
331
|
+
});
|
332
|
+
|
333
|
+
// Expire data after 45d
|
334
|
+
modelSchema.index({
|
335
|
+
movedAt: -1,
|
336
|
+
}, {
|
337
|
+
name: "ttl_45d_movedAt_-1",
|
338
|
+
expireAfterSeconds: 3888000,
|
339
|
+
});
|
340
|
+
|
341
|
+
modelSchema.index({
|
342
|
+
uuid: 1,
|
343
|
+
}, {
|
344
|
+
name: "uuid_1_unique",
|
345
|
+
unique: true,
|
221
346
|
});
|
222
347
|
|
223
348
|
modelSchema.plugin(mongooseLeanVirtuals);
|
package/src/models/mail-log.ts
CHANGED
@@ -79,6 +79,12 @@ export default async function MailLogModule(mongoose: MongooseModule) {
|
|
79
79
|
autoIndex: false,
|
80
80
|
});
|
81
81
|
|
82
|
+
modelSchema.index({
|
83
|
+
modified_unix_date: 1,
|
84
|
+
}, {
|
85
|
+
name: "modified_unix_date_1",
|
86
|
+
});
|
87
|
+
|
82
88
|
return mongoose.model<MailLog>("MailLog", modelSchema, "massive_mail_log", { overwriteModels: true });
|
83
89
|
}
|
84
90
|
|
@@ -397,7 +397,6 @@ export default async function ManagedIncidentModule(mongoose: MongooseModule) {
|
|
397
397
|
type: String,
|
398
398
|
default: "",
|
399
399
|
required: true,
|
400
|
-
index: true,
|
401
400
|
},
|
402
401
|
userId: {
|
403
402
|
type: String,
|
@@ -562,17 +561,89 @@ export default async function ManagedIncidentModule(mongoose: MongooseModule) {
|
|
562
561
|
},
|
563
562
|
}, {
|
564
563
|
autoIndex: false,
|
564
|
+
toJSON: {
|
565
|
+
virtuals: true,
|
566
|
+
versionKey: false,
|
567
|
+
},
|
565
568
|
});
|
566
569
|
|
567
570
|
modelSchema.virtual("id").get(function(this: ManagedIncident) {
|
568
571
|
return this._id.toHexString();
|
569
572
|
});
|
570
573
|
|
571
|
-
modelSchema.
|
572
|
-
|
573
|
-
|
574
|
+
modelSchema.index({
|
575
|
+
departmentId: 1,
|
576
|
+
api_incident_number: 1
|
577
|
+
}, {
|
578
|
+
name: "departmentId_1_api_incident_number_1",
|
579
|
+
});
|
580
|
+
|
581
|
+
modelSchema.index({
|
582
|
+
departmentId: 1,
|
583
|
+
end_unix_time: 1,
|
584
|
+
}, {
|
585
|
+
name: "departmentId_1_end_unix_time_1",
|
586
|
+
});
|
587
|
+
|
588
|
+
modelSchema.index({
|
589
|
+
departmentId: 1,
|
590
|
+
end_unix_time: 1,
|
591
|
+
start_unix_time: -1,
|
592
|
+
}, {
|
593
|
+
name: "departmentId_1_end_unix_time_1_start_unix_time_-1",
|
594
|
+
});
|
595
|
+
|
596
|
+
modelSchema.index({
|
597
|
+
departmentId: 1,
|
598
|
+
extended: 1
|
599
|
+
}, {
|
600
|
+
name: "departmentId_1_extended_1",
|
601
|
+
});
|
602
|
+
|
603
|
+
modelSchema.index({
|
604
|
+
departmentId: 1,
|
605
|
+
is_closed: 1,
|
606
|
+
modified_unix_date: -1,
|
607
|
+
}, {
|
608
|
+
name: "departmentId_1_is_closed_1_modified_unix_date_-1",
|
609
|
+
});
|
610
|
+
|
611
|
+
modelSchema.index({
|
612
|
+
departmentId: 1,
|
613
|
+
modified_date: 1,
|
614
|
+
}, {
|
615
|
+
name: "departmentId_1_modified_date_1",
|
616
|
+
});
|
617
|
+
|
618
|
+
modelSchema.index({
|
619
|
+
departmentId: 1,
|
620
|
+
modified_unix_date: 1
|
621
|
+
}, {
|
622
|
+
name: "departmentId_1_modified_unix_date_1",
|
623
|
+
});
|
624
|
+
|
625
|
+
modelSchema.index({
|
626
|
+
departmentId: 1,
|
627
|
+
userId: 1,
|
628
|
+
start_unix_time: -1,
|
629
|
+
}, {
|
630
|
+
name: "departmentId_1_userId_1_start_unix_time_-1",
|
574
631
|
});
|
575
632
|
|
633
|
+
modelSchema.index({
|
634
|
+
departmentId: 1,
|
635
|
+
start_unix_time: -1,
|
636
|
+
end_unix_time: 1
|
637
|
+
}, {
|
638
|
+
name: "departmentId_1_start_unix_time_-1_end_unix_time_1",
|
639
|
+
});
|
640
|
+
|
641
|
+
modelSchema.index({
|
642
|
+
uuid: 1,
|
643
|
+
}, {
|
644
|
+
name: "uuid_1",
|
645
|
+
unique: true,
|
646
|
+
});
|
576
647
|
|
577
648
|
modelSchema.plugin(mongooseLeanVirtuals);
|
578
649
|
return mongoose.model<ManagedIncident>("ManagedIncident", modelSchema, "massive_incident_managed", { overwriteModels: true });
|
package/src/models/message.ts
CHANGED
@@ -36,7 +36,6 @@ export default async function MessageModule(mongoose: MongooseModule) {
|
|
36
36
|
type: String,
|
37
37
|
default: "",
|
38
38
|
required: true,
|
39
|
-
index: true,
|
40
39
|
},
|
41
40
|
userId: {
|
42
41
|
type: String,
|
@@ -98,6 +97,28 @@ export default async function MessageModule(mongoose: MongooseModule) {
|
|
98
97
|
autoIndex: false,
|
99
98
|
});
|
100
99
|
|
100
|
+
modelSchema.index({
|
101
|
+
departmentId: 1,
|
102
|
+
userId: 1,
|
103
|
+
createdAt: 1
|
104
|
+
}, {
|
105
|
+
name: "departmentId_1_userId_1_createdAt_1",
|
106
|
+
});
|
107
|
+
|
108
|
+
modelSchema.index({
|
109
|
+
"type.type": 1,
|
110
|
+
created: 1
|
111
|
+
}, {
|
112
|
+
name: "type_type_created_1",
|
113
|
+
});
|
114
|
+
|
115
|
+
modelSchema.index({
|
116
|
+
uuid: 1,
|
117
|
+
}, {
|
118
|
+
name: "uuid_1_unique",
|
119
|
+
unique: true,
|
120
|
+
});
|
121
|
+
|
101
122
|
return mongoose.model<Message>("Message", modelSchema, "massive_message", { overwriteModels: true });
|
102
123
|
}
|
103
124
|
|
package/src/models/monitor.ts
CHANGED
@@ -20,7 +20,6 @@ export default async function MonitorModule(mongoose: MongooseModule) {
|
|
20
20
|
type: String,
|
21
21
|
default: "",
|
22
22
|
required: true,
|
23
|
-
index: true,
|
24
23
|
},
|
25
24
|
agencyId: {
|
26
25
|
type: String,
|
@@ -61,6 +60,23 @@ export default async function MonitorModule(mongoose: MongooseModule) {
|
|
61
60
|
}
|
62
61
|
});
|
63
62
|
|
63
|
+
// cspell: words deparmtent
|
64
|
+
modelSchema.index({
|
65
|
+
departmentId: 1,
|
66
|
+
notificationType: 1,
|
67
|
+
sentAt: -1,
|
68
|
+
}, {
|
69
|
+
name: "deparmtentId_1_notificationType_1_sentAt_-1",
|
70
|
+
});
|
71
|
+
|
72
|
+
modelSchema.index({
|
73
|
+
departmentId: 1,
|
74
|
+
notificationType: 1,
|
75
|
+
sentUnixDate: -1,
|
76
|
+
}, {
|
77
|
+
name: "deparmtentId_1_notificationType_1_sentUnixDate_-1",
|
78
|
+
});
|
79
|
+
|
64
80
|
return mongoose.model<Monitor>("Monitor", modelSchema, "massive_monitor", { overwriteModels: true });
|
65
81
|
}
|
66
82
|
|
@@ -114,6 +114,90 @@ export function PersonnelImportSchema(mongoose: MongooseModule) {
|
|
114
114
|
autoIndex: false,
|
115
115
|
});
|
116
116
|
|
117
|
+
modelSchema.index({
|
118
|
+
agencyId: 1,
|
119
|
+
modified: -1
|
120
|
+
}, {
|
121
|
+
name: "agencyId_1_modified_-1",
|
122
|
+
});
|
123
|
+
|
124
|
+
modelSchema.index({
|
125
|
+
departmentId: 1,
|
126
|
+
active: 1
|
127
|
+
}, {
|
128
|
+
name: "departmentId_1_active_1",
|
129
|
+
});
|
130
|
+
|
131
|
+
modelSchema.index({
|
132
|
+
departmentId: 1,
|
133
|
+
active: 1,
|
134
|
+
radioNames: 1
|
135
|
+
}, {
|
136
|
+
name: "departmentId_1_active_1_radioNames_1",
|
137
|
+
});
|
138
|
+
|
139
|
+
modelSchema.index({
|
140
|
+
departmentId: 1,
|
141
|
+
agencyId: 1,
|
142
|
+
active: 1,
|
143
|
+
shiftStartTime: 1,
|
144
|
+
shiftEndTime: 1
|
145
|
+
}, {
|
146
|
+
name: "departmentId_1_agencyId_1_active_1_shiftStartTime_1_shiftEndTime_1",
|
147
|
+
});
|
148
|
+
|
149
|
+
modelSchema.index({
|
150
|
+
departmentId: 1,
|
151
|
+
modified: 1,
|
152
|
+
shiftEndTime: 1
|
153
|
+
}, {
|
154
|
+
name: "departmentId_1_modified_1_shiftEndTime_1",
|
155
|
+
});
|
156
|
+
|
157
|
+
modelSchema.index({
|
158
|
+
departmentId: 1,
|
159
|
+
radioNames: 1,
|
160
|
+
active: 1,
|
161
|
+
shiftEndTime: 1,
|
162
|
+
shiftStartTime: 1
|
163
|
+
}, {
|
164
|
+
name: "departmentId_1_radioNames_1_active_1_shiftEndTime_1_shiftStartTime_1",
|
165
|
+
});
|
166
|
+
|
167
|
+
modelSchema.index({
|
168
|
+
departmentId: 1,
|
169
|
+
"radios.radioName": 1,
|
170
|
+
active: 1,
|
171
|
+
"radios.active": 1,
|
172
|
+
shiftEndTime: 1,
|
173
|
+
shiftStartTime: 1
|
174
|
+
}, {
|
175
|
+
name: "departmentId_1_radios.radioName_1_active_1_radios.active_1_shiftEndTime_1_shiftStartTime_1",
|
176
|
+
});
|
177
|
+
|
178
|
+
modelSchema.index({
|
179
|
+
departmentId: 1,
|
180
|
+
shiftStartTime: 1,
|
181
|
+
PersonnelID: 1
|
182
|
+
}, {
|
183
|
+
name: "departmentId_1_shiftStartTime_1_PersonnelID_1",
|
184
|
+
unique: true,
|
185
|
+
});
|
186
|
+
|
187
|
+
modelSchema.index({
|
188
|
+
radios: 1,
|
189
|
+
modified: 1
|
190
|
+
}, {
|
191
|
+
name: "radios_1_modified_1",
|
192
|
+
});
|
193
|
+
|
194
|
+
modelSchema.index({
|
195
|
+
modified: 1,
|
196
|
+
}, {
|
197
|
+
name: "ttl_90d_modified_1",
|
198
|
+
expireAfterSeconds: 7786800,
|
199
|
+
});
|
200
|
+
|
117
201
|
return modelSchema;
|
118
202
|
}
|
119
203
|
|
@@ -86,6 +86,15 @@ export function PersonnelKnownSchema(mongoose: MongooseModule) {
|
|
86
86
|
autoIndex: false,
|
87
87
|
});
|
88
88
|
|
89
|
+
modelSchema.index({
|
90
|
+
departmentId: 1,
|
91
|
+
PersonnelID: 1,
|
92
|
+
active: 1
|
93
|
+
}, {
|
94
|
+
name: "departmentId_1_PersonnelID_1_active_1",
|
95
|
+
unique: true,
|
96
|
+
});
|
97
|
+
|
89
98
|
return modelSchema;
|
90
99
|
}
|
91
100
|
|
package/src/models/rate-limit.ts
CHANGED
@@ -36,6 +36,13 @@ export default async function RateLimitModule(mongoose: MongooseModule) {
|
|
36
36
|
autoIndex: false,
|
37
37
|
});
|
38
38
|
|
39
|
+
modelSchema.index({
|
40
|
+
username: 1,
|
41
|
+
modified_unix_date: 1
|
42
|
+
}, {
|
43
|
+
name: "username_1_modified_unix_date_1",
|
44
|
+
});
|
45
|
+
|
39
46
|
return mongoose.model<RateLimit>("RateLimit", modelSchema, "massive_rate_limit", { overwriteModels: true });
|
40
47
|
}
|
41
48
|
|
package/src/models/remote-log.ts
CHANGED