@trafficgroup/knex-rel 0.1.21 → 0.1.23-rc.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/.claude/settings.local.json +5 -2
- package/CLAUDE.md +2 -11
- package/dist/constants/folder.constants.d.ts +2 -2
- package/dist/constants/folder.constants.js +6 -15
- package/dist/constants/folder.constants.js.map +1 -1
- package/dist/constants/study.constants.d.ts +1 -1
- package/dist/constants/study.constants.js +1 -1
- package/dist/constants/video.constants.d.ts +2 -2
- package/dist/constants/video.constants.js +5 -9
- package/dist/constants/video.constants.js.map +1 -1
- package/dist/dao/VideoMinuteResultDAO.d.ts +19 -2
- package/dist/dao/VideoMinuteResultDAO.js +75 -29
- package/dist/dao/VideoMinuteResultDAO.js.map +1 -1
- package/dist/dao/auth/auth.dao.js +1 -4
- package/dist/dao/auth/auth.dao.js.map +1 -1
- package/dist/dao/batch/batch.dao.d.ts +0 -10
- package/dist/dao/batch/batch.dao.js +14 -51
- package/dist/dao/batch/batch.dao.js.map +1 -1
- package/dist/dao/camera/camera.dao.js +7 -10
- package/dist/dao/camera/camera.dao.js.map +1 -1
- package/dist/dao/chat/chat.dao.d.ts +1 -1
- package/dist/dao/chat/chat.dao.js +40 -27
- package/dist/dao/chat/chat.dao.js.map +1 -1
- package/dist/dao/folder/folder.dao.js +7 -18
- package/dist/dao/folder/folder.dao.js.map +1 -1
- package/dist/dao/location/location.dao.js +9 -16
- package/dist/dao/location/location.dao.js.map +1 -1
- package/dist/dao/message/message.dao.d.ts +1 -1
- package/dist/dao/message/message.dao.js +26 -18
- package/dist/dao/message/message.dao.js.map +1 -1
- package/dist/dao/report-configuration/report-configuration.dao.js +68 -39
- package/dist/dao/report-configuration/report-configuration.dao.js.map +1 -1
- package/dist/dao/study/study.dao.d.ts +8 -1
- package/dist/dao/study/study.dao.js +20 -15
- package/dist/dao/study/study.dao.js.map +1 -1
- package/dist/dao/systemConfiguration/SystemConfigurationDAO.d.ts +2 -2
- package/dist/dao/systemConfiguration/SystemConfigurationDAO.js +26 -26
- package/dist/dao/systemConfiguration/SystemConfigurationDAO.js.map +1 -1
- package/dist/dao/user/user.dao.js +1 -4
- package/dist/dao/user/user.dao.js.map +1 -1
- package/dist/dao/user-push-notification-token/user-push-notification-token.dao.js +8 -26
- package/dist/dao/user-push-notification-token/user-push-notification-token.dao.js.map +1 -1
- package/dist/dao/video/video.dao.js +28 -30
- package/dist/dao/video/video.dao.js.map +1 -1
- package/dist/index.d.ts +10 -9
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/interfaces/batch/batch.interfaces.d.ts +1 -1
- package/dist/interfaces/camera/camera.interfaces.d.ts +1 -1
- package/dist/interfaces/chat/chat.interfaces.d.ts +3 -3
- package/dist/interfaces/folder/folder.interfaces.d.ts +1 -1
- package/dist/interfaces/message/message.interfaces.d.ts +2 -2
- package/dist/interfaces/report-configuration/report-configuration.interfaces.d.ts +1 -0
- package/dist/interfaces/study/study.interfaces.d.ts +2 -8
- package/dist/interfaces/user/user.interfaces.d.ts +1 -1
- package/dist/interfaces/user-push-notification-token/user-push-notification-token.interfaces.d.ts +1 -1
- package/dist/interfaces/video/video.interfaces.d.ts +2 -2
- package/migrations/20250717160737_migration.ts +1 -1
- package/migrations/20250717160908_migration.ts +2 -5
- package/migrations/20250717161310_migration.ts +1 -1
- package/migrations/20250717161406_migration.ts +3 -3
- package/migrations/20250717162431_migration.ts +1 -1
- package/migrations/20250717173228_migration.ts +2 -2
- package/migrations/20250717204731_migration.ts +1 -1
- package/migrations/20250722210109_migration.ts +4 -8
- package/migrations/20250722211019_migration.ts +1 -1
- package/migrations/20250723153852_migration.ts +10 -13
- package/migrations/20250723162257_migration.ts +7 -4
- package/migrations/20250723171109_migration.ts +7 -4
- package/migrations/20250723205331_migration.ts +9 -6
- package/migrations/20250724191345_migration.ts +11 -8
- package/migrations/20250730180932_migration.ts +13 -14
- package/migrations/20250730213625_migration.ts +11 -8
- package/migrations/20250804124509_migration.ts +21 -26
- package/migrations/20250804132053_migration.ts +8 -5
- package/migrations/20250804164518_migration.ts +7 -7
- package/migrations/20250823223016_migration.ts +21 -32
- package/migrations/20250910015452_migration.ts +6 -18
- package/migrations/20250911000000_migration.ts +4 -18
- package/migrations/20250917144153_migration.ts +7 -14
- package/migrations/20250930200521_migration.ts +4 -8
- package/migrations/20251010143500_migration.ts +6 -27
- package/migrations/20251020225758_migration.ts +15 -51
- package/migrations/20251112120000_migration.ts +2 -10
- package/migrations/20251112120200_migration.ts +7 -19
- package/migrations/20251112120300_migration.ts +2 -7
- package/migrations/20260109140000_migration.ts +2 -7
- package/package.json +3 -3
- package/src/constants/folder.constants.ts +8 -17
- package/src/constants/study.constants.ts +1 -1
- package/src/constants/video.constants.ts +7 -11
- package/src/d.types.ts +14 -18
- package/src/dao/VideoMinuteResultDAO.ts +127 -83
- package/src/dao/auth/auth.dao.ts +55 -58
- package/src/dao/batch/batch.dao.ts +100 -145
- package/src/dao/camera/camera.dao.ts +121 -124
- package/src/dao/chat/chat.dao.ts +45 -45
- package/src/dao/folder/folder.dao.ts +90 -105
- package/src/dao/location/location.dao.ts +87 -109
- package/src/dao/message/message.dao.ts +32 -32
- package/src/dao/reconciliation-log/reconciliation-log.dao.ts +1 -1
- package/src/dao/report-configuration/report-configuration.dao.ts +381 -370
- package/src/dao/study/study.dao.ts +83 -94
- package/src/dao/systemConfiguration/SystemConfigurationDAO.ts +35 -41
- package/src/dao/user/user.dao.ts +50 -52
- package/src/dao/user-push-notification-token/user-push-notification-token.dao.ts +48 -80
- package/src/dao/video/video.dao.ts +345 -396
- package/src/entities/BaseEntity.ts +1 -1
- package/src/index.ts +30 -43
- package/src/interfaces/auth/auth.interfaces.ts +10 -10
- package/src/interfaces/batch/batch.interfaces.ts +1 -1
- package/src/interfaces/camera/camera.interfaces.ts +9 -9
- package/src/interfaces/chat/chat.interfaces.ts +4 -4
- package/src/interfaces/folder/folder.interfaces.ts +2 -2
- package/src/interfaces/location/location.interfaces.ts +7 -7
- package/src/interfaces/message/message.interfaces.ts +3 -3
- package/src/interfaces/report-configuration/report-configuration.interfaces.ts +17 -16
- package/src/interfaces/study/study.interfaces.ts +3 -10
- package/src/interfaces/user/user.interfaces.ts +9 -9
- package/src/interfaces/user-push-notification-token/user-push-notification-token.interfaces.ts +9 -9
- package/src/interfaces/video/video.interfaces.ts +34 -34
|
@@ -20,13 +20,17 @@ class MessageDAO {
|
|
|
20
20
|
}
|
|
21
21
|
create(item) {
|
|
22
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const [result] = yield this._knex(
|
|
23
|
+
const [result] = yield this._knex('message')
|
|
24
|
+
.insert(item)
|
|
25
|
+
.returning('*');
|
|
24
26
|
return result;
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
29
|
getById(id) {
|
|
28
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
const result = yield this._knex(
|
|
31
|
+
const result = yield this._knex('message')
|
|
32
|
+
.where('id', id)
|
|
33
|
+
.first();
|
|
30
34
|
return result || null;
|
|
31
35
|
});
|
|
32
36
|
}
|
|
@@ -40,11 +44,11 @@ class MessageDAO {
|
|
|
40
44
|
return __awaiter(this, arguments, void 0, function* (page = 1, limit = 10) {
|
|
41
45
|
const offset = (page - 1) * limit;
|
|
42
46
|
const [results, [{ count }]] = yield Promise.all([
|
|
43
|
-
this._knex(
|
|
44
|
-
.orderBy(
|
|
47
|
+
this._knex('message')
|
|
48
|
+
.orderBy('created_at', 'asc')
|
|
45
49
|
.limit(limit)
|
|
46
50
|
.offset(offset),
|
|
47
|
-
this._knex(
|
|
51
|
+
this._knex('message').count('* as count')
|
|
48
52
|
]);
|
|
49
53
|
const totalCount = parseInt(count);
|
|
50
54
|
return {
|
|
@@ -54,22 +58,24 @@ class MessageDAO {
|
|
|
54
58
|
limit,
|
|
55
59
|
count: results.length,
|
|
56
60
|
totalCount,
|
|
57
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
61
|
+
totalPages: Math.ceil(totalCount / limit)
|
|
58
62
|
};
|
|
59
63
|
});
|
|
60
64
|
}
|
|
61
65
|
update(id, item) {
|
|
62
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
const [result] = yield this._knex(
|
|
64
|
-
.where(
|
|
67
|
+
const [result] = yield this._knex('message')
|
|
68
|
+
.where('id', id)
|
|
65
69
|
.update(Object.assign(Object.assign({}, item), { updated_at: new Date() }))
|
|
66
|
-
.returning(
|
|
70
|
+
.returning('*');
|
|
67
71
|
return result || null;
|
|
68
72
|
});
|
|
69
73
|
}
|
|
70
74
|
delete(id) {
|
|
71
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const result = yield this._knex(
|
|
76
|
+
const result = yield this._knex('message')
|
|
77
|
+
.where('id', id)
|
|
78
|
+
.delete();
|
|
73
79
|
return result > 0;
|
|
74
80
|
});
|
|
75
81
|
}
|
|
@@ -77,12 +83,14 @@ class MessageDAO {
|
|
|
77
83
|
return __awaiter(this, arguments, void 0, function* (chatId, page = 1, limit = 50) {
|
|
78
84
|
const offset = (page - 1) * limit;
|
|
79
85
|
const [results, [{ count }]] = yield Promise.all([
|
|
80
|
-
this._knex(
|
|
81
|
-
.where(
|
|
82
|
-
.orderBy(
|
|
86
|
+
this._knex('message')
|
|
87
|
+
.where('chatId', chatId)
|
|
88
|
+
.orderBy('created_at', 'asc')
|
|
83
89
|
.limit(limit)
|
|
84
90
|
.offset(offset),
|
|
85
|
-
this._knex(
|
|
91
|
+
this._knex('message')
|
|
92
|
+
.where('chatId', chatId)
|
|
93
|
+
.count('* as count')
|
|
86
94
|
]);
|
|
87
95
|
const totalCount = parseInt(count);
|
|
88
96
|
return {
|
|
@@ -92,15 +100,15 @@ class MessageDAO {
|
|
|
92
100
|
limit,
|
|
93
101
|
count: results.length,
|
|
94
102
|
totalCount,
|
|
95
|
-
totalPages: Math.ceil(totalCount / limit)
|
|
103
|
+
totalPages: Math.ceil(totalCount / limit)
|
|
96
104
|
};
|
|
97
105
|
});
|
|
98
106
|
}
|
|
99
107
|
getLatestMessages(chatId_1) {
|
|
100
108
|
return __awaiter(this, arguments, void 0, function* (chatId, limit = 50) {
|
|
101
|
-
return yield this._knex(
|
|
102
|
-
.where(
|
|
103
|
-
.orderBy(
|
|
109
|
+
return yield this._knex('message')
|
|
110
|
+
.where('chatId', chatId)
|
|
111
|
+
.orderBy('created_at', 'desc')
|
|
104
112
|
.limit(limit)
|
|
105
113
|
.then((messages) => messages.reverse());
|
|
106
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.dao.js","sourceRoot":"","sources":["../../../src/dao/message/message.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"message.dao.js","sourceRoot":"","sources":["../../../src/dao/message/message.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,18 +27,24 @@ const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
|
|
|
27
27
|
* - Classes 9-13: Articulated trucks (semi-trailers, multi-trailers)
|
|
28
28
|
*
|
|
29
29
|
* Non-motorized vehicles (pedestrian, bicycle, non_motorized_vehicle) are EXCLUDED
|
|
30
|
+
* from FHWA mapping but can be included via specialClasses
|
|
30
31
|
*/
|
|
31
32
|
const DETECTION_LABEL_TO_FHWA = {
|
|
32
|
-
motorcycle: [1],
|
|
33
|
-
car: [2],
|
|
34
|
-
pickup_truck: [3],
|
|
35
|
-
motorized_vehicle: [3], // Maps to Class 3 (same as pickup_truck)
|
|
36
|
-
bus: [4],
|
|
37
|
-
work_van: [5],
|
|
38
|
-
single_unit_truck: [6, 7, 8], // Classes 6-8
|
|
39
|
-
articulated_truck: [9, 10, 11, 12, 13]
|
|
40
|
-
// pedestrian, bicycle, non_motorized_vehicle are EXCLUDED
|
|
33
|
+
'motorcycle': [1],
|
|
34
|
+
'car': [2],
|
|
35
|
+
'pickup_truck': [3],
|
|
36
|
+
'motorized_vehicle': [3], // Maps to Class 3 (same as pickup_truck)
|
|
37
|
+
'bus': [4],
|
|
38
|
+
'work_van': [5],
|
|
39
|
+
'single_unit_truck': [6, 7, 8], // Classes 6-8
|
|
40
|
+
'articulated_truck': [9, 10, 11, 12, 13] // Classes 9-13
|
|
41
|
+
// pedestrian, bicycle, non_motorized_vehicle are EXCLUDED from FHWA
|
|
41
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Valid special class names that bypass FHWA mapping
|
|
45
|
+
* These map directly from detection label to custom class
|
|
46
|
+
*/
|
|
47
|
+
const VALID_SPECIAL_CLASSES = ['bicycle'];
|
|
42
48
|
class ReportConfigurationDAO {
|
|
43
49
|
constructor() {
|
|
44
50
|
this._knex = KnexConnection_1.default.getConnection();
|
|
@@ -52,13 +58,13 @@ class ReportConfigurationDAO {
|
|
|
52
58
|
// Validate configuration before creating
|
|
53
59
|
const validation = this.validateConfiguration(item.configuration);
|
|
54
60
|
if (!validation.valid) {
|
|
55
|
-
throw new Error(`Invalid configuration: ${validation.errors.join(
|
|
61
|
+
throw new Error(`Invalid configuration: ${validation.errors.join(', ')}`);
|
|
56
62
|
}
|
|
57
63
|
const [createdConfig] = yield this._knex(this.tableName)
|
|
58
64
|
.insert({
|
|
59
65
|
name: item.name,
|
|
60
66
|
description: item.description,
|
|
61
|
-
configuration: JSON.stringify(item.configuration)
|
|
67
|
+
configuration: JSON.stringify(item.configuration)
|
|
62
68
|
})
|
|
63
69
|
.returning("*");
|
|
64
70
|
return this._deserialize(createdConfig);
|
|
@@ -102,7 +108,7 @@ class ReportConfigurationDAO {
|
|
|
102
108
|
if (item.configuration) {
|
|
103
109
|
const validation = this.validateConfiguration(item.configuration);
|
|
104
110
|
if (!validation.valid) {
|
|
105
|
-
throw new Error(`Invalid configuration: ${validation.errors.join(
|
|
111
|
+
throw new Error(`Invalid configuration: ${validation.errors.join(', ')}`);
|
|
106
112
|
}
|
|
107
113
|
}
|
|
108
114
|
const updateData = {};
|
|
@@ -126,9 +132,9 @@ class ReportConfigurationDAO {
|
|
|
126
132
|
delete(id) {
|
|
127
133
|
return __awaiter(this, void 0, void 0, function* () {
|
|
128
134
|
// Count total configurations
|
|
129
|
-
const [{ count }] = yield this._knex(this.tableName).count(
|
|
135
|
+
const [{ count }] = yield this._knex(this.tableName).count('* as count');
|
|
130
136
|
if (parseInt(count) <= 1) {
|
|
131
|
-
throw new Error(
|
|
137
|
+
throw new Error('Cannot delete the last configuration. At least one configuration must exist.');
|
|
132
138
|
}
|
|
133
139
|
const result = yield this._knex(this.tableName).where({ id }).del();
|
|
134
140
|
return result > 0;
|
|
@@ -148,7 +154,7 @@ class ReportConfigurationDAO {
|
|
|
148
154
|
.orderBy("created_at", "desc");
|
|
149
155
|
return {
|
|
150
156
|
success: true,
|
|
151
|
-
data: configs.map(
|
|
157
|
+
data: configs.map(c => this._deserialize(c)),
|
|
152
158
|
page,
|
|
153
159
|
limit,
|
|
154
160
|
count: configs.length,
|
|
@@ -171,19 +177,19 @@ class ReportConfigurationDAO {
|
|
|
171
177
|
const errors = [];
|
|
172
178
|
// Validate version exists
|
|
173
179
|
if (!config.version) {
|
|
174
|
-
errors.push(
|
|
180
|
+
errors.push('Configuration version is required');
|
|
175
181
|
}
|
|
176
182
|
// Validate custom classes array
|
|
177
183
|
if (!config.customClasses || !Array.isArray(config.customClasses)) {
|
|
178
|
-
errors.push(
|
|
184
|
+
errors.push('customClasses must be an array');
|
|
179
185
|
return { valid: false, errors };
|
|
180
186
|
}
|
|
181
187
|
// Min 2, max 7 custom classes
|
|
182
188
|
if (config.customClasses.length < 2) {
|
|
183
|
-
errors.push(
|
|
189
|
+
errors.push('Minimum 2 custom classes required');
|
|
184
190
|
}
|
|
185
191
|
if (config.customClasses.length > 7) {
|
|
186
|
-
errors.push(
|
|
192
|
+
errors.push('Maximum 7 custom classes allowed');
|
|
187
193
|
}
|
|
188
194
|
// Check name length (max 30 chars) and FHWA classes validity
|
|
189
195
|
const allFhwaClasses = [];
|
|
@@ -191,29 +197,40 @@ class ReportConfigurationDAO {
|
|
|
191
197
|
if (!cls.name || cls.name.length === 0) {
|
|
192
198
|
errors.push(`Custom class ${idx + 1}: name cannot be empty`);
|
|
193
199
|
}
|
|
194
|
-
if (cls.name && cls.name.toLowerCase() ===
|
|
200
|
+
if (cls.name && cls.name.toLowerCase() === 'total') {
|
|
195
201
|
errors.push(`Custom class ${idx + 1}: "Total" is a reserved name and cannot be used`);
|
|
196
202
|
}
|
|
197
203
|
if (cls.name && cls.name.length > 30) {
|
|
198
204
|
errors.push(`Custom class ${idx + 1}: name exceeds 30 characters`);
|
|
199
205
|
}
|
|
200
|
-
|
|
201
|
-
|
|
206
|
+
const hasFhwa = Array.isArray(cls.fhwaClasses) && cls.fhwaClasses.length > 0;
|
|
207
|
+
const hasSpecial = Array.isArray(cls.specialClasses) && cls.specialClasses.length > 0;
|
|
208
|
+
// A custom class must have at least one FHWA class OR one specialClass
|
|
209
|
+
if (!hasFhwa && !hasSpecial) {
|
|
210
|
+
errors.push(`Custom class ${idx + 1}: must have at least one FHWA class or one special class`);
|
|
202
211
|
}
|
|
203
|
-
|
|
204
|
-
cls.fhwaClasses.forEach(
|
|
212
|
+
if (hasFhwa) {
|
|
213
|
+
cls.fhwaClasses.forEach(fhwa => {
|
|
205
214
|
if (!Number.isInteger(fhwa) || fhwa < 1 || fhwa > 13) {
|
|
206
215
|
errors.push(`Custom class ${idx + 1}: FHWA class ${fhwa} is invalid (must be 1-13)`);
|
|
207
216
|
}
|
|
208
217
|
allFhwaClasses.push(fhwa);
|
|
209
218
|
});
|
|
210
219
|
}
|
|
220
|
+
// Validate specialClasses entries
|
|
221
|
+
if (hasSpecial) {
|
|
222
|
+
cls.specialClasses.forEach(sc => {
|
|
223
|
+
if (!VALID_SPECIAL_CLASSES.includes(sc)) {
|
|
224
|
+
errors.push(`Custom class ${idx + 1}: invalid special class "${sc}". Allowed: ${VALID_SPECIAL_CLASSES.join(', ')}`);
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
211
228
|
});
|
|
212
229
|
// Check for duplicate FHWA classes (many-to-one only)
|
|
213
230
|
const uniqueFhwaClasses = new Set(allFhwaClasses);
|
|
214
231
|
if (uniqueFhwaClasses.size !== allFhwaClasses.length) {
|
|
215
232
|
const duplicates = allFhwaClasses.filter((item, index) => allFhwaClasses.indexOf(item) !== index);
|
|
216
|
-
errors.push(`Duplicate FHWA classes detected: ${[...new Set(duplicates)].join(
|
|
233
|
+
errors.push(`Duplicate FHWA classes detected: ${[...new Set(duplicates)].join(', ')}. Each FHWA class can only be mapped to one custom class.`);
|
|
217
234
|
}
|
|
218
235
|
return { valid: errors.length === 0, errors };
|
|
219
236
|
}
|
|
@@ -236,20 +253,26 @@ class ReportConfigurationDAO {
|
|
|
236
253
|
for (const [label, count] of Object.entries(detectionResults)) {
|
|
237
254
|
const fhwaClasses = DETECTION_LABEL_TO_FHWA[label];
|
|
238
255
|
if (fhwaClasses && fhwaClasses.length > 0) {
|
|
239
|
-
fhwaClasses.forEach(
|
|
240
|
-
fhwaClassCounts[fhwaClass] =
|
|
241
|
-
(fhwaClassCounts[fhwaClass] || 0) + count;
|
|
256
|
+
fhwaClasses.forEach(fhwaClass => {
|
|
257
|
+
fhwaClassCounts[fhwaClass] = (fhwaClassCounts[fhwaClass] || 0) + count;
|
|
242
258
|
});
|
|
243
259
|
}
|
|
244
|
-
// Labels not in DETECTION_LABEL_TO_FHWA are silently ignored
|
|
260
|
+
// Labels not in DETECTION_LABEL_TO_FHWA and not in specialClasses are silently ignored
|
|
245
261
|
}
|
|
246
|
-
// Step 2: FHWA classes → Custom classes
|
|
262
|
+
// Step 2: FHWA classes → Custom classes + specialClasses direct mapping
|
|
247
263
|
const customClassCounts = {};
|
|
248
|
-
config.configuration.customClasses.forEach(
|
|
264
|
+
config.configuration.customClasses.forEach(customClass => {
|
|
249
265
|
let total = 0;
|
|
250
|
-
|
|
266
|
+
// Sum FHWA-based counts
|
|
267
|
+
customClass.fhwaClasses.forEach(fhwaClass => {
|
|
251
268
|
total += fhwaClassCounts[fhwaClass] || 0;
|
|
252
269
|
});
|
|
270
|
+
// Sum specialClasses direct mapping (detection label === special class name)
|
|
271
|
+
if (Array.isArray(customClass.specialClasses)) {
|
|
272
|
+
customClass.specialClasses.forEach(specialClass => {
|
|
273
|
+
total += detectionResults[specialClass] || 0;
|
|
274
|
+
});
|
|
275
|
+
}
|
|
253
276
|
customClassCounts[customClass.name] = total;
|
|
254
277
|
});
|
|
255
278
|
return customClassCounts;
|
|
@@ -279,6 +302,12 @@ class ReportConfigurationDAO {
|
|
|
279
302
|
}
|
|
280
303
|
}
|
|
281
304
|
}
|
|
305
|
+
// Map specialClasses directly (detection label === special class name)
|
|
306
|
+
if (Array.isArray(customClass.specialClasses)) {
|
|
307
|
+
for (const specialClass of customClass.specialClasses) {
|
|
308
|
+
detectionToCustomClass[specialClass] = customClass.name;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
282
311
|
}
|
|
283
312
|
// Initialize empty structure for each custom class
|
|
284
313
|
const result = {};
|
|
@@ -288,7 +317,7 @@ class ReportConfigurationDAO {
|
|
|
288
317
|
// Iterate through detection labels in input structure
|
|
289
318
|
for (const [detectionLabel, nestedData] of Object.entries(vehiclesStructure)) {
|
|
290
319
|
const customClassName = detectionToCustomClass[detectionLabel];
|
|
291
|
-
// Skip labels not mapped to any custom class
|
|
320
|
+
// Skip labels not mapped to any custom class
|
|
292
321
|
if (!customClassName) {
|
|
293
322
|
continue;
|
|
294
323
|
}
|
|
@@ -312,15 +341,15 @@ class ReportConfigurationDAO {
|
|
|
312
341
|
*/
|
|
313
342
|
_deepMergeNumericData(target, source) {
|
|
314
343
|
// Base case: if source is a number, add it to target
|
|
315
|
-
if (typeof source ===
|
|
316
|
-
return (typeof target ===
|
|
344
|
+
if (typeof source === 'number') {
|
|
345
|
+
return (typeof target === 'number' ? target : 0) + source;
|
|
317
346
|
}
|
|
318
347
|
// If source is not an object, return target unchanged
|
|
319
|
-
if (typeof source !==
|
|
348
|
+
if (typeof source !== 'object' || source === null) {
|
|
320
349
|
return target;
|
|
321
350
|
}
|
|
322
351
|
// Ensure target is an object
|
|
323
|
-
if (typeof target !==
|
|
352
|
+
if (typeof target !== 'object' || target === null) {
|
|
324
353
|
target = {};
|
|
325
354
|
}
|
|
326
355
|
// Recursively merge each key in source
|
|
@@ -359,11 +388,11 @@ class ReportConfigurationDAO {
|
|
|
359
388
|
uuid: row.uuid,
|
|
360
389
|
name: row.name,
|
|
361
390
|
description: row.description,
|
|
362
|
-
configuration: typeof row.configuration ===
|
|
391
|
+
configuration: typeof row.configuration === 'string'
|
|
363
392
|
? JSON.parse(row.configuration)
|
|
364
393
|
: row.configuration,
|
|
365
394
|
created_at: row.created_at,
|
|
366
|
-
updated_at: row.updated_at
|
|
395
|
+
updated_at: row.updated_at
|
|
367
396
|
};
|
|
368
397
|
}
|
|
369
398
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-configuration.dao.js","sourceRoot":"","sources":["../../../src/dao/report-configuration/report-configuration.dao.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"report-configuration.dao.js","sourceRoot":"","sources":["../../../src/dao/report-configuration/report-configuration.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { IBaseDAO, IDataPaginator } from "../../d.types";
|
|
2
|
-
import { IStudy
|
|
2
|
+
import { IStudy } from "../../interfaces/study/study.interfaces";
|
|
3
|
+
import { StudySortField } from "../../constants/study.constants";
|
|
4
|
+
import { SortOrder } from "../../constants/video.constants";
|
|
5
|
+
export interface IStudyFilters {
|
|
6
|
+
createdBy?: number | null;
|
|
7
|
+
sortBy?: StudySortField;
|
|
8
|
+
sortOrder?: SortOrder;
|
|
9
|
+
}
|
|
3
10
|
export declare class StudyDAO implements IBaseDAO<IStudy> {
|
|
4
11
|
private _knex;
|
|
5
12
|
create(item: IStudy): Promise<IStudy>;
|
|
@@ -13,17 +13,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.StudyDAO = void 0;
|
|
16
|
-
const study_constants_1 = require("../../constants/study.constants");
|
|
17
16
|
const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
|
|
17
|
+
const study_constants_1 = require("../../constants/study.constants");
|
|
18
18
|
class StudyDAO {
|
|
19
19
|
constructor() {
|
|
20
20
|
this._knex = KnexConnection_1.default.getConnection();
|
|
21
21
|
}
|
|
22
22
|
create(item) {
|
|
23
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
|
-
const [createdStudy] = yield this._knex("study")
|
|
25
|
-
.insert(item)
|
|
26
|
-
.returning("*");
|
|
24
|
+
const [createdStudy] = yield this._knex("study").insert(item).returning("*");
|
|
27
25
|
return createdStudy;
|
|
28
26
|
});
|
|
29
27
|
}
|
|
@@ -51,10 +49,7 @@ class StudyDAO {
|
|
|
51
49
|
}
|
|
52
50
|
update(id, item) {
|
|
53
51
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
-
const [updatedStudy] = yield this._knex("study")
|
|
55
|
-
.where({ id })
|
|
56
|
-
.update(item)
|
|
57
|
-
.returning("*");
|
|
52
|
+
const [updatedStudy] = yield this._knex("study").where({ id }).update(item).returning("*");
|
|
58
53
|
return updatedStudy || null;
|
|
59
54
|
});
|
|
60
55
|
}
|
|
@@ -71,14 +66,24 @@ class StudyDAO {
|
|
|
71
66
|
.innerJoin("users as u", "s.createdBy", "u.id")
|
|
72
67
|
.leftJoin("locations as l", "s.locationId", "l.id")
|
|
73
68
|
.select("s.*", this._knex.raw("to_jsonb(u.*) as user"), this._knex.raw("to_jsonb(l.*) as location"));
|
|
74
|
-
|
|
69
|
+
if (filters) {
|
|
70
|
+
if (filters.createdBy !== undefined && filters.createdBy !== null) {
|
|
71
|
+
query.where("s.createdBy", filters.createdBy);
|
|
72
|
+
}
|
|
73
|
+
if (filters.sortBy) {
|
|
74
|
+
const columnName = study_constants_1.STUDY_SORT_COLUMN_MAP[filters.sortBy];
|
|
75
|
+
const order = filters.sortOrder || "DESC";
|
|
76
|
+
query.orderBy(columnName, order);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
query.orderBy("s.created_at", "DESC");
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
query.orderBy("s.created_at", "DESC");
|
|
84
|
+
}
|
|
85
|
+
const [countResult] = yield query.clone().clearSelect().clearOrder().count("* as count");
|
|
75
86
|
const totalCount = +countResult.count;
|
|
76
|
-
// Apply sorting
|
|
77
|
-
const sortColumn = (filters === null || filters === void 0 ? void 0 : filters.sortBy) && study_constants_1.STUDY_SORT_COLUMN_MAP[filters.sortBy]
|
|
78
|
-
? study_constants_1.STUDY_SORT_COLUMN_MAP[filters.sortBy]
|
|
79
|
-
: "s.created_at";
|
|
80
|
-
const sortOrder = (filters === null || filters === void 0 ? void 0 : filters.sortOrder) || "DESC";
|
|
81
|
-
query.orderBy(sortColumn, sortOrder);
|
|
82
87
|
const studies = yield query.clone().limit(limit).offset(offset);
|
|
83
88
|
return {
|
|
84
89
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"study.dao.js","sourceRoot":"","sources":["../../../src/dao/study/study.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"study.dao.js","sourceRoot":"","sources":["../../../src/dao/study/study.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ISystemConfiguration } from
|
|
1
|
+
import { ISystemConfiguration } from '../../interfaces/systemConfiguration/ISystemConfiguration';
|
|
2
2
|
export declare class SystemConfigurationDAO {
|
|
3
3
|
private knex;
|
|
4
|
-
create(config: Omit<ISystemConfiguration,
|
|
4
|
+
create(config: Omit<ISystemConfiguration, 'id'>): Promise<ISystemConfiguration>;
|
|
5
5
|
getById(id: number): Promise<ISystemConfiguration | null>;
|
|
6
6
|
getByUuid(uuid: string): Promise<ISystemConfiguration | null>;
|
|
7
7
|
getByKey(key: string): Promise<ISystemConfiguration | null>;
|