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
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "tabletcommand-backend-models",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.2.1",
|
4
4
|
"description": "Tablet Command Backend Models",
|
5
5
|
"scripts": {
|
6
6
|
"build": "gulp build",
|
@@ -17,7 +17,7 @@
|
|
17
17
|
"types": "definitions/index.d.ts",
|
18
18
|
"dependencies": {
|
19
19
|
"bluebird": "^3.7.2",
|
20
|
-
"debug": "^4.3.
|
20
|
+
"debug": "^4.3.7",
|
21
21
|
"lodash": "^4.17.21",
|
22
22
|
"moment-timezone": "^0.5.45",
|
23
23
|
"mongoose": "^7.7.0",
|
@@ -26,9 +26,10 @@
|
|
26
26
|
},
|
27
27
|
"devDependencies": {
|
28
28
|
"@types/bluebird": "^3.5.42",
|
29
|
-
"@types/chai": "^4.3.
|
29
|
+
"@types/chai": "^4.3.19",
|
30
30
|
"@types/lodash": "^4.14.202",
|
31
|
-
"@types/mocha": "^10.0.
|
31
|
+
"@types/mocha": "^10.0.8",
|
32
|
+
"@types/node": "^22.5.5",
|
32
33
|
"@types/uuid": "~10.0.0",
|
33
34
|
"@typescript-eslint/eslint-plugin": "~6.21.0",
|
34
35
|
"@typescript-eslint/parser": "~6.21.0",
|
@@ -41,7 +42,7 @@
|
|
41
42
|
"mocha": "^10.7.3",
|
42
43
|
"ts-node": "^10.9.2",
|
43
44
|
"type-coverage": "^2.29.1",
|
44
|
-
"typescript": "~4.
|
45
|
+
"typescript": "~4.9.5",
|
45
46
|
"yargs-parser": ">=21.1.1"
|
46
47
|
},
|
47
48
|
"typeCoverage": {
|
package/src/helpers.ts
CHANGED
package/src/index.ts
CHANGED
@@ -131,9 +131,10 @@ export { ValidationReport, ValidationReportModel } from "./models/validation-rep
|
|
131
131
|
|
132
132
|
export * from "./helpers";
|
133
133
|
|
134
|
-
export async function connect(url: string, overwriteOpts?: ConnectOptions) {
|
134
|
+
export async function connect(url: string, overwriteOpts?: ConnectOptions, enableDebug = false) {
|
135
135
|
const mongoose = await import("mongoose");
|
136
136
|
mongoose.Promise = await import("bluebird");
|
137
|
+
mongoose.set("debug", enableDebug);
|
137
138
|
const models = await wireModels(mongoose);
|
138
139
|
const defaultOpts: ConnectOptions = {
|
139
140
|
autoIndex: false,
|
package/src/models/action-log.ts
CHANGED
@@ -62,6 +62,14 @@ export default async function ActionLogModule(mongoose: MongooseModule) {
|
|
62
62
|
}, {
|
63
63
|
autoIndex: false
|
64
64
|
});
|
65
|
+
|
66
|
+
modelSchema.index({
|
67
|
+
departmentId: 1,
|
68
|
+
modified_unix_date: 1
|
69
|
+
}, {
|
70
|
+
name: "departmentId_1_modified_unix_date_1",
|
71
|
+
});
|
72
|
+
|
65
73
|
return mongoose.model<ActionLog>("ActionLog", modelSchema, "massive_action_log", { overwriteModels: true });
|
66
74
|
}
|
67
75
|
|
package/src/models/agency.ts
CHANGED
@@ -129,6 +129,47 @@ export function AgencySchema(mongoose: MongooseModule) {
|
|
129
129
|
}, {
|
130
130
|
autoIndex: false,
|
131
131
|
});
|
132
|
+
|
133
|
+
modelSchema.index({
|
134
|
+
agencyApiKey: 1,
|
135
|
+
}, {
|
136
|
+
name: "agencyApiKey_1",
|
137
|
+
unique: true,
|
138
|
+
});
|
139
|
+
|
140
|
+
modelSchema.index({
|
141
|
+
departmentId: 1,
|
142
|
+
}, {
|
143
|
+
name: "departmentId_1",
|
144
|
+
});
|
145
|
+
|
146
|
+
modelSchema.index({
|
147
|
+
departmentId: 1,
|
148
|
+
code: 1,
|
149
|
+
}, {
|
150
|
+
name: "departmentId_1_code_1_unique",
|
151
|
+
unique: true,
|
152
|
+
});
|
153
|
+
|
154
|
+
modelSchema.index({
|
155
|
+
personnelApiKey: 1,
|
156
|
+
}, {
|
157
|
+
name: "personnelApiKey_1_unique",
|
158
|
+
unique: true,
|
159
|
+
});
|
160
|
+
|
161
|
+
modelSchema.index({
|
162
|
+
"saml.selector": 1,
|
163
|
+
}, {
|
164
|
+
name: "saml_selector_partial_uniq",
|
165
|
+
unique: true,
|
166
|
+
partialFilterExpression: {
|
167
|
+
"saml.selector": {
|
168
|
+
"$exists": true
|
169
|
+
}
|
170
|
+
}
|
171
|
+
});
|
172
|
+
|
132
173
|
return modelSchema;
|
133
174
|
}
|
134
175
|
|
@@ -108,7 +108,8 @@ export default async function ArcGISGroupModule(mongoose: MongooseModule) {
|
|
108
108
|
// Unique, to be able to use replaceInto
|
109
109
|
groupId: {
|
110
110
|
type: String,
|
111
|
-
unique: true,
|
111
|
+
// unique: true,
|
112
|
+
// TODO: Review if this can be created as unique
|
112
113
|
},
|
113
114
|
title: {
|
114
115
|
type: String,
|
@@ -177,6 +178,14 @@ export default async function ArcGISGroupModule(mongoose: MongooseModule) {
|
|
177
178
|
autoIndex: false,
|
178
179
|
});
|
179
180
|
|
181
|
+
modelSchema.index({
|
182
|
+
groupId: 1,
|
183
|
+
}, {
|
184
|
+
name: "groupId_1",
|
185
|
+
// unique: true,
|
186
|
+
// TODO: Review if this can be created as unique
|
187
|
+
});
|
188
|
+
|
180
189
|
return mongoose.model<ArcGISGroup>("ArcGISGroup", modelSchema, "massive_arcgis_group", { overwriteModels: true });
|
181
190
|
}
|
182
191
|
|
package/src/models/assignment.ts
CHANGED
@@ -30,7 +30,6 @@ export default async function AssignmentModule(mongoose: MongooseModule) {
|
|
30
30
|
departmentId: {
|
31
31
|
type: String,
|
32
32
|
required: true,
|
33
|
-
index: true,
|
34
33
|
},
|
35
34
|
isMandatory: {
|
36
35
|
type: Boolean,
|
@@ -68,13 +67,34 @@ export default async function AssignmentModule(mongoose: MongooseModule) {
|
|
68
67
|
},
|
69
68
|
}, {
|
70
69
|
autoIndex: false,
|
70
|
+
toJSON: {
|
71
|
+
virtuals: true,
|
72
|
+
versionKey: false,
|
73
|
+
}
|
71
74
|
});
|
72
75
|
modelSchema.virtual("id").get(function(this: AssignmentType) {
|
73
76
|
return this._id.toString();
|
74
77
|
});
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
+
|
79
|
+
modelSchema.index({
|
80
|
+
departmentId: 1,
|
81
|
+
isMandatory: 1,
|
82
|
+
}, {
|
83
|
+
name: "departmentId_1_isMandatory_1",
|
84
|
+
});
|
85
|
+
|
86
|
+
modelSchema.index({
|
87
|
+
departmentId: 1,
|
88
|
+
modified_date: 1,
|
89
|
+
}, {
|
90
|
+
name: "departmentId_1_modified_date_1",
|
91
|
+
});
|
92
|
+
|
93
|
+
modelSchema.index({
|
94
|
+
departmentId: 1,
|
95
|
+
userId: 1,
|
96
|
+
}, {
|
97
|
+
name: "departmentId_1_userId_1",
|
78
98
|
});
|
79
99
|
|
80
100
|
return mongoose.model<Assignment>("Assignment", modelSchema, "massive_assignment", { overwriteModels: true });
|
package/src/models/battalion.ts
CHANGED
@@ -73,20 +73,21 @@ export function BattalionSchema(mongoose: MongooseModule) {
|
|
73
73
|
ref: "Agency",
|
74
74
|
default: null,
|
75
75
|
},
|
76
|
-
}, {
|
76
|
+
}, {
|
77
|
+
autoIndex: false,
|
78
|
+
toJSON: {
|
79
|
+
virtuals: true,
|
80
|
+
versionKey: false,
|
81
|
+
transform(doc, ret) {
|
82
|
+
strictSchema(doc.schema as typeof modelSchema, ret);
|
83
|
+
},
|
84
|
+
}
|
85
|
+
});
|
77
86
|
|
78
87
|
BattalionUnit.virtual("id").get(function(this: MongooseDocument) {
|
79
88
|
// tslint:disable-next-line: no-unsafe-any
|
80
89
|
return this._id.toString();
|
81
90
|
});
|
82
|
-
BattalionUnit.set("toJSON", {
|
83
|
-
virtuals: true,
|
84
|
-
versionKey: false,
|
85
|
-
transform(doc, ret) {
|
86
|
-
strictSchema(doc.schema as typeof modelSchema, ret);
|
87
|
-
},
|
88
|
-
});
|
89
|
-
|
90
91
|
|
91
92
|
const modelSchema = new Schema<BattalionType>({
|
92
93
|
_id: {
|
@@ -127,7 +128,6 @@ export function BattalionSchema(mongoose: MongooseModule) {
|
|
127
128
|
departmentId: {
|
128
129
|
type: String,
|
129
130
|
required: true,
|
130
|
-
index: true,
|
131
131
|
},
|
132
132
|
agencyId: {
|
133
133
|
type: Schema.Types.ObjectId,
|
@@ -144,19 +144,45 @@ export function BattalionSchema(mongoose: MongooseModule) {
|
|
144
144
|
},
|
145
145
|
}, {
|
146
146
|
autoIndex: false,
|
147
|
+
toJSON: {
|
148
|
+
virtuals: true,
|
149
|
+
versionKey: false,
|
150
|
+
transform(doc, ret) {
|
151
|
+
strictSchema(doc.schema as typeof modelSchema, ret);
|
152
|
+
},
|
153
|
+
}
|
147
154
|
});
|
148
155
|
modelSchema.virtual("id").get(function(this: MongooseDocument) {
|
149
156
|
// tslint:disable-next-line: no-unsafe-any
|
150
157
|
return this._id.toString();
|
151
158
|
});
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
159
|
+
|
160
|
+
modelSchema.index({
|
161
|
+
departmentId: 1,
|
162
|
+
isMandatory: 1,
|
163
|
+
}, {
|
164
|
+
name: "departmentId_1_isMandatory_1",
|
158
165
|
});
|
159
166
|
|
167
|
+
modelSchema.index({
|
168
|
+
departmentId: 1,
|
169
|
+
modified_date: 1,
|
170
|
+
}, {
|
171
|
+
name: "departmentId_1_modified_date_1",
|
172
|
+
});
|
173
|
+
|
174
|
+
modelSchema.index({
|
175
|
+
departmentId: 1,
|
176
|
+
userId: 1,
|
177
|
+
}, {
|
178
|
+
name: "departmentId_1_userId_1",
|
179
|
+
});
|
180
|
+
|
181
|
+
modelSchema.index({
|
182
|
+
uuid: 1,
|
183
|
+
}, {
|
184
|
+
name: "uuid_1",
|
185
|
+
});
|
160
186
|
|
161
187
|
function strictSchema(schema: typeof modelSchema, ret: Record<string, unknown>) {
|
162
188
|
Object.keys(ret).forEach(function(element) {
|
package/src/models/beacon-log.ts
CHANGED
@@ -19,7 +19,6 @@ export default async function BeaconLogModule(mongoose: MongooseModule) {
|
|
19
19
|
departmentId: {
|
20
20
|
type: String,
|
21
21
|
default: "",
|
22
|
-
index: true,
|
23
22
|
},
|
24
23
|
userId: {
|
25
24
|
type: String,
|
@@ -40,6 +39,12 @@ export default async function BeaconLogModule(mongoose: MongooseModule) {
|
|
40
39
|
autoIndex: false,
|
41
40
|
});
|
42
41
|
|
42
|
+
modelSchema.index({
|
43
|
+
departmentId: 1,
|
44
|
+
}, {
|
45
|
+
name: "departmentId_1",
|
46
|
+
});
|
47
|
+
|
43
48
|
return mongoose.model<BeaconLog>("BeaconLog", modelSchema, "massive_beacon_log", { overwriteModels: true });
|
44
49
|
}
|
45
50
|
|
@@ -23,7 +23,6 @@ export default async function CADIncidentBlockModule(mongoose: MongooseModule) {
|
|
23
23
|
departmentId: {
|
24
24
|
type: String,
|
25
25
|
required: true,
|
26
|
-
index: true,
|
27
26
|
},
|
28
27
|
// callType or admin email
|
29
28
|
source: {
|
@@ -59,6 +58,14 @@ export default async function CADIncidentBlockModule(mongoose: MongooseModule) {
|
|
59
58
|
}
|
60
59
|
});
|
61
60
|
|
61
|
+
modelSchema.index({
|
62
|
+
departmentId: 1,
|
63
|
+
IncidentNumber: 1,
|
64
|
+
}, {
|
65
|
+
name: "departmentId_1_IncidentNumber_1_unique",
|
66
|
+
unique: true,
|
67
|
+
});
|
68
|
+
|
62
69
|
return mongoose.model<CADIncidentBlock>("CADIncidentBlock", modelSchema, "massive_cad_incident_block", { overwriteModels: true });
|
63
70
|
}
|
64
71
|
|
@@ -32,7 +32,6 @@ export default async function CADIncidentStreamModule(mongoose: MongooseModule)
|
|
32
32
|
type: String,
|
33
33
|
default: "",
|
34
34
|
required: true,
|
35
|
-
index: true,
|
36
35
|
},
|
37
36
|
incidentNumber: {
|
38
37
|
type: String,
|
@@ -54,6 +53,37 @@ export default async function CADIncidentStreamModule(mongoose: MongooseModule)
|
|
54
53
|
}
|
55
54
|
});
|
56
55
|
|
56
|
+
modelSchema.index({
|
57
|
+
departmentId: 1,
|
58
|
+
incidentNumber: 1,
|
59
|
+
createdAt: -1,
|
60
|
+
_id: -1
|
61
|
+
}, {
|
62
|
+
name: "departmentId_1_incidentNumber_1_createdAt_-1__id_-1",
|
63
|
+
});
|
64
|
+
|
65
|
+
modelSchema.index({
|
66
|
+
departmentId: 1,
|
67
|
+
createdAt: -1
|
68
|
+
}, {
|
69
|
+
name: "departmentId_createdAt",
|
70
|
+
});
|
71
|
+
|
72
|
+
modelSchema.index({
|
73
|
+
departmentId: 1,
|
74
|
+
incidentNumber: 1,
|
75
|
+
createdAt: 1
|
76
|
+
}, {
|
77
|
+
name: "departmentId_incidentNumber_createdAt",
|
78
|
+
});
|
79
|
+
|
80
|
+
modelSchema.index({
|
81
|
+
createdAt: -1,
|
82
|
+
}, {
|
83
|
+
name: "ttl_90d_createdAt_-1",
|
84
|
+
expireAfterSeconds: 7786800,
|
85
|
+
});
|
86
|
+
|
57
87
|
return mongoose.model<CADIncidentStream>("CADIncidentStream", modelSchema, "massive_cad_incident_stream", { overwriteModels: true });
|
58
88
|
}
|
59
89
|
|
@@ -12,7 +12,36 @@ export default async function CADIncidentModule(mongoose: MongooseModule) {
|
|
12
12
|
const modelSchema = CADIncidentSchema(mongoose);
|
13
13
|
modelSchema.set("strict", false); // Because we accept all kind of data in
|
14
14
|
|
15
|
-
|
15
|
+
modelSchema.index({
|
16
|
+
closed_unix_date: 1,
|
17
|
+
departmentId: 1,
|
18
|
+
modified_unix_date: 1
|
19
|
+
}, {
|
20
|
+
name: "closed_unix_date_1_departmentId_1_modified_unix_date_1",
|
21
|
+
});
|
22
|
+
|
23
|
+
modelSchema.index({
|
24
|
+
closed_unix_date: 1,
|
25
|
+
modified_unix_date: 1
|
26
|
+
}, {
|
27
|
+
name: "closed_unix_date_modified_unix_date",
|
28
|
+
});
|
29
|
+
|
30
|
+
modelSchema.index({
|
31
|
+
departmentId: 1,
|
32
|
+
ClosedDateTime: -1
|
33
|
+
}, {
|
34
|
+
name: "departmentId_1_ClosedDateTime_-1",
|
35
|
+
});
|
36
|
+
|
37
|
+
modelSchema.index({
|
38
|
+
departmentId: 1,
|
39
|
+
ClosedDateTime: 1,
|
40
|
+
expiration_date: 1
|
41
|
+
}, {
|
42
|
+
name: "departmentId_1_ClosedDateTime_1_expiration_date_1",
|
43
|
+
});
|
44
|
+
|
16
45
|
modelSchema.index({
|
17
46
|
departmentId: 1,
|
18
47
|
IncidentNumber: 1
|
@@ -21,6 +50,87 @@ export default async function CADIncidentModule(mongoose: MongooseModule) {
|
|
21
50
|
unique: true,
|
22
51
|
});
|
23
52
|
|
53
|
+
modelSchema.index({
|
54
|
+
departmentId: 1,
|
55
|
+
closed_unix_date: 1,
|
56
|
+
modified_unix_date: 1
|
57
|
+
}, {
|
58
|
+
name: "departmentId_1_closed_unix_date_1_modified_unix_date_1",
|
59
|
+
});
|
60
|
+
|
61
|
+
modelSchema.index({
|
62
|
+
departmentId: 1,
|
63
|
+
modified_unix_date: 1
|
64
|
+
}, {
|
65
|
+
name: "departmentId_1_modified_unix_date_1",
|
66
|
+
});
|
67
|
+
|
68
|
+
modelSchema.index({
|
69
|
+
departmentId: 1,
|
70
|
+
start_unix_date: -1,
|
71
|
+
closed_unix_date: 1
|
72
|
+
}, {
|
73
|
+
name: "departmentId_1_start_unix_date_-1_closed_unix_date_1",
|
74
|
+
});
|
75
|
+
|
76
|
+
modelSchema.index({
|
77
|
+
departmentId: 1,
|
78
|
+
start_unix_date: 1
|
79
|
+
}, {
|
80
|
+
name: "departmentId_1_start_unix_date_1",
|
81
|
+
});
|
82
|
+
|
83
|
+
modelSchema.index({
|
84
|
+
expiration_date: 1,
|
85
|
+
ClosedDateTime: 1
|
86
|
+
}, {
|
87
|
+
name: "expiration_date_1_ClosedDateTime_1",
|
88
|
+
partialFilterExpression: {
|
89
|
+
expiration_date: {
|
90
|
+
"$gt": ""
|
91
|
+
},
|
92
|
+
ClosedDateTime: {
|
93
|
+
"$eq": ""
|
94
|
+
}
|
95
|
+
},
|
96
|
+
});
|
97
|
+
|
98
|
+
modelSchema.index({
|
99
|
+
expiration_date: 1,
|
100
|
+
ClosedDateTime: 1,
|
101
|
+
departmentId: 1
|
102
|
+
}, {
|
103
|
+
name: "expiration_date_1_ClosedDateTime_1_departmentId_1",
|
104
|
+
partialFilterExpression: {
|
105
|
+
expiration_date: {
|
106
|
+
"$gt": ""
|
107
|
+
},
|
108
|
+
ClosedDateTime: ""
|
109
|
+
}
|
110
|
+
});
|
111
|
+
|
112
|
+
modelSchema.index({
|
113
|
+
"sharedTo.departmentId": 1,
|
114
|
+
start_unix_date: -1,
|
115
|
+
closed_unix_date: 1
|
116
|
+
}, {
|
117
|
+
name: "sharedTo.departmentId_1_start_unix_date_-1_closed_unix_date_1",
|
118
|
+
});
|
119
|
+
|
120
|
+
modelSchema.index({
|
121
|
+
"sharedTo.departmentId": 1,
|
122
|
+
"sharedTo.expireAt": 1
|
123
|
+
}, {
|
124
|
+
name: "sharedTo_departmentId_1_sharedTo_expireAt_1",
|
125
|
+
});
|
126
|
+
|
127
|
+
modelSchema.index({
|
128
|
+
uuid: 1,
|
129
|
+
}, {
|
130
|
+
name: "uuid_1",
|
131
|
+
unique: true,
|
132
|
+
});
|
133
|
+
|
24
134
|
return mongoose.model<CADIncident>("CADIncident", modelSchema, "massive_incident_cad", { overwriteModels: true });
|
25
135
|
}
|
26
136
|
|
@@ -132,14 +132,12 @@ export default async function CADSimulationModule(mongoose: MongooseModule) {
|
|
132
132
|
// Internal
|
133
133
|
uuid: {
|
134
134
|
type: String,
|
135
|
-
index: true,
|
136
135
|
default: uuid.v4,
|
137
136
|
},
|
138
137
|
departmentId: {
|
139
138
|
type: String,
|
140
139
|
default: "",
|
141
140
|
required: true,
|
142
|
-
index: true,
|
143
141
|
},
|
144
142
|
modifiedDate: {
|
145
143
|
type: Number,
|
@@ -35,7 +35,6 @@ export default async function CADStatusMapModule(mongoose: MongooseModule) {
|
|
35
35
|
type: String,
|
36
36
|
default: "",
|
37
37
|
required: true,
|
38
|
-
index: true,
|
39
38
|
},
|
40
39
|
modifiedDate: {
|
41
40
|
type: Number,
|
@@ -63,6 +62,12 @@ export default async function CADStatusMapModule(mongoose: MongooseModule) {
|
|
63
62
|
autoIndex: false,
|
64
63
|
});
|
65
64
|
|
65
|
+
modelSchema.index({
|
66
|
+
departmentId: 1
|
67
|
+
}, {
|
68
|
+
name: "departmentId_1",
|
69
|
+
});
|
70
|
+
|
66
71
|
return mongoose.model<CADStatusMap>("CADStatusMap", modelSchema, "massive_cad_status_map", { overwriteModels: true });
|
67
72
|
}
|
68
73
|
|
package/src/models/cad-status.ts
CHANGED
@@ -89,14 +89,12 @@ export default async function CADStatusModule(mongoose: MongooseModule) {
|
|
89
89
|
const modelSchema = new Schema<CADStatus>({
|
90
90
|
uuid: {
|
91
91
|
type: String,
|
92
|
-
index: true,
|
93
92
|
default: uuid.v4,
|
94
93
|
},
|
95
94
|
departmentId: {
|
96
95
|
type: String,
|
97
96
|
default: "",
|
98
97
|
required: true,
|
99
|
-
index: true,
|
100
98
|
},
|
101
99
|
modifiedDate: {
|
102
100
|
type: Number,
|
@@ -160,6 +158,19 @@ export default async function CADStatusModule(mongoose: MongooseModule) {
|
|
160
158
|
autoIndex: false,
|
161
159
|
});
|
162
160
|
|
161
|
+
modelSchema.index({
|
162
|
+
departmentId: 1
|
163
|
+
}, {
|
164
|
+
name: "departmentId_1",
|
165
|
+
});
|
166
|
+
|
167
|
+
modelSchema.index({
|
168
|
+
uuid: 1
|
169
|
+
}, {
|
170
|
+
name: "uuid_1_unique",
|
171
|
+
unique: true,
|
172
|
+
});
|
173
|
+
|
163
174
|
return mongoose.model<CADStatus>("CADStatus", modelSchema, "massive_cad_status", { overwriteModels: true });
|
164
175
|
}
|
165
176
|
|
@@ -17,12 +17,10 @@ export default async function CADVehicleStatusHistoryModule(mongoose: MongooseMo
|
|
17
17
|
type: String,
|
18
18
|
default: "",
|
19
19
|
required: true,
|
20
|
-
index: true,
|
21
20
|
},
|
22
21
|
vehicleId: {
|
23
22
|
type: String,
|
24
23
|
default: "",
|
25
|
-
index: true,
|
26
24
|
},
|
27
25
|
radioName: {
|
28
26
|
type: String,
|
@@ -78,6 +76,53 @@ export default async function CADVehicleStatusHistoryModule(mongoose: MongooseMo
|
|
78
76
|
autoIndex: false,
|
79
77
|
});
|
80
78
|
|
79
|
+
modelSchema.index({
|
80
|
+
departmentId: 1,
|
81
|
+
incidentNumber: 1,
|
82
|
+
requested: -1
|
83
|
+
}, {
|
84
|
+
name: "departmentId_1_incidentNumber_1_requested__1",
|
85
|
+
});
|
86
|
+
|
87
|
+
modelSchema.index({
|
88
|
+
departmentId: 1,
|
89
|
+
requestedAt: -1,
|
90
|
+
requestDelay: 1
|
91
|
+
}, {
|
92
|
+
name: "departmentId_1_requestedAt_-1_requestDelay_1",
|
93
|
+
});
|
94
|
+
|
95
|
+
modelSchema.index({
|
96
|
+
departmentId: 1,
|
97
|
+
requested: -1,
|
98
|
+
requestDelay: 1
|
99
|
+
}, {
|
100
|
+
name: "departmentId_1_requested_-1_requestDelay_1",
|
101
|
+
});
|
102
|
+
|
103
|
+
modelSchema.index({
|
104
|
+
departmentId: 1,
|
105
|
+
vehicleId: 1,
|
106
|
+
requestedAt: -1
|
107
|
+
}, {
|
108
|
+
name: "departmentId_1_vehicleId_1_requestedAt_-1",
|
109
|
+
});
|
110
|
+
|
111
|
+
modelSchema.index({
|
112
|
+
departmentId: 1,
|
113
|
+
vehicleId: 1,
|
114
|
+
requested: -1,
|
115
|
+
}, {
|
116
|
+
name: "departmentId_1_vehicleId_1_requested_-1",
|
117
|
+
});
|
118
|
+
|
119
|
+
modelSchema.index({
|
120
|
+
requested: 1,
|
121
|
+
}, {
|
122
|
+
name: "ttl_30d_requested_1",
|
123
|
+
expireAfterSeconds: 2654300,
|
124
|
+
});
|
125
|
+
|
81
126
|
return mongoose.model<CADVehicleStatusHistory>("CADVehicleStatusHistory", modelSchema, "massive_cad_vehicle_status_history", { overwriteModels: true });
|
82
127
|
}
|
83
128
|
|