@tmscloud/tbt-knex 0.0.23 → 0.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/KnexConnection.d.ts +0 -9
- package/dist/KnexConnection.js +0 -9
- package/dist/KnexConnection.js.map +1 -1
- package/dist/dao/driver-tracking/driver-tracking.dao.d.ts +0 -40
- package/dist/dao/driver-tracking/driver-tracking.dao.js +3 -48
- package/dist/dao/driver-tracking/driver-tracking.dao.js.map +1 -1
- package/dist/dao/duty/duty.dao.d.ts +0 -60
- package/dist/dao/duty/duty.dao.js +1 -62
- package/dist/dao/duty/duty.dao.js.map +1 -1
- package/dist/dao/duty-item-progress/duty-item-progress.dao.d.ts +0 -30
- package/dist/dao/duty-item-progress/duty-item-progress.dao.js +1 -30
- package/dist/dao/duty-item-progress/duty-item-progress.dao.js.map +1 -1
- package/dist/dao/duty-template/duty-template.dao.d.ts +0 -53
- package/dist/dao/duty-template/duty-template.dao.js +12 -63
- package/dist/dao/duty-template/duty-template.dao.js.map +1 -1
- package/dist/dao/duty-track/duty-track.dao.d.ts +0 -29
- package/dist/dao/duty-track/duty-track.dao.js +0 -29
- package/dist/dao/duty-track/duty-track.dao.js.map +1 -1
- package/dist/dao/event/event.dao.d.ts +0 -24
- package/dist/dao/event/event.dao.js +1 -26
- package/dist/dao/event/event.dao.js.map +1 -1
- package/dist/dao/role/role.dao.d.ts +0 -24
- package/dist/dao/role/role.dao.js +0 -27
- package/dist/dao/role/role.dao.js.map +1 -1
- package/dist/dao/route/route.dao.d.ts +0 -37
- package/dist/dao/route/route.dao.js +0 -44
- package/dist/dao/route/route.dao.js.map +1 -1
- package/dist/dao/user/user.dao.d.ts +0 -48
- package/dist/dao/user/user.dao.js +9 -53
- package/dist/dao/user/user.dao.js.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/route/route-geojson.interfaces.js +0 -1
- package/dist/interfaces/route/route-geojson.interfaces.js.map +1 -1
- package/dist/interfaces/tracking/tracking.interfaces.d.ts +1 -12
- package/dist/interfaces/tracking/tracking.interfaces.js +0 -4
- package/dist/interfaces/tracking/tracking.interfaces.js.map +1 -1
- package/dist/interfaces/user/user.interfaces.d.ts +0 -3
- package/package.json +1 -1
package/dist/KnexConnection.d.ts
CHANGED
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
import { Knex } from "knex";
|
|
2
2
|
declare class KnexManager {
|
|
3
3
|
private static knexInstance;
|
|
4
|
-
/**
|
|
5
|
-
* Open a new connection. Reuse the already existing one if there's any.
|
|
6
|
-
*/
|
|
7
4
|
static connect(config?: Knex.Config, connections?: number): Promise<Knex<any, unknown[]>>;
|
|
8
|
-
/**
|
|
9
|
-
* Devuelve la conexión activa.
|
|
10
|
-
*/
|
|
11
5
|
static getConnection(): Knex<any, unknown[]>;
|
|
12
|
-
/**
|
|
13
|
-
* Cierra la conexión y destruye la instancia.
|
|
14
|
-
*/
|
|
15
6
|
static disconnect(): Promise<void>;
|
|
16
7
|
}
|
|
17
8
|
export default KnexManager;
|
package/dist/KnexConnection.js
CHANGED
|
@@ -18,9 +18,6 @@ const pg_1 = __importDefault(require("pg"));
|
|
|
18
18
|
// This prevents timezone-dependent shifts when the API serialises dates to JSON.
|
|
19
19
|
pg_1.default.types.setTypeParser(1082, (val) => val);
|
|
20
20
|
class KnexManager {
|
|
21
|
-
/**
|
|
22
|
-
* Open a new connection. Reuse the already existing one if there's any.
|
|
23
|
-
*/
|
|
24
21
|
static connect(config, connections) {
|
|
25
22
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
23
|
if (!KnexManager.knexInstance) {
|
|
@@ -61,18 +58,12 @@ class KnexManager {
|
|
|
61
58
|
return KnexManager.knexInstance;
|
|
62
59
|
});
|
|
63
60
|
}
|
|
64
|
-
/**
|
|
65
|
-
* Devuelve la conexión activa.
|
|
66
|
-
*/
|
|
67
61
|
static getConnection() {
|
|
68
62
|
if (!KnexManager.knexInstance) {
|
|
69
63
|
throw new Error("Knex connection has not been established. Call connect() first.");
|
|
70
64
|
}
|
|
71
65
|
return KnexManager.knexInstance;
|
|
72
66
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Cierra la conexión y destruye la instancia.
|
|
75
|
-
*/
|
|
76
67
|
static disconnect() {
|
|
77
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
78
69
|
if (KnexManager.knexInstance) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnexConnection.js","sourceRoot":"","sources":["../src/KnexConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+BAAkC;AAClC,4CAAoB;AAEpB,gFAAgF;AAChF,iFAAiF;AACjF,YAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,WAAW;IAGf
|
|
1
|
+
{"version":3,"file":"KnexConnection.js","sourceRoot":"","sources":["../src/KnexConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+BAAkC;AAClC,4CAAoB;AAEpB,gFAAgF;AAChF,iFAAiF;AACjF,YAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,WAAW;IAGf,MAAM,CAAO,OAAO,CAClB,MAAoB,EACpB,WAAoB;;YAEpB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC9B,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,WAAW;oBACpC,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,WAAW,CAAC;gBACvC,MAAM,aAAa,GAAG;oBACpB,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE;wBACV,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;wBAC1B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;wBAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;wBAClC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;wBACjC,OAAO,EAAE,SAAS;wBAClB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;wBAC1C,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE;qBACzD;oBACD,IAAI,EAAE;wBACJ,GAAG,EAAE,CAAC;wBACN,GAAG,EAAE,WAAW,IAAI,EAAE;wBACtB,iBAAiB,EAAE,KAAK;wBACxB,oBAAoB,EAAE,KAAK;qBAC5B;oBACD,UAAU,EAAE;wBACV,SAAS,EAAE,iBAAiB;qBAC7B;iBACF,CAAC;gBACF,WAAW,CAAC,YAAY,GAAG,IAAA,WAAI,EAAC,MAAM,IAAI,aAAa,CAAC,CAAC;gBACzD,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;oBAC7D,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;oBAChC,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,WAAW,CAAC,YAAY,CAAC;QAClC,CAAC;KAAA;IAED,MAAM,CAAC,aAAa;QAClB,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC,YAAY,CAAC;IAClC,CAAC;IAED,MAAM,CAAO,UAAU;;YACrB,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC;gBAC7B,MAAM,WAAW,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzC,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;KAAA;;AA5Dc,wBAAY,GAAgC,IAAI,CAAC;AA+DlE,kBAAe,WAAW,CAAC"}
|
|
@@ -5,18 +5,12 @@ export declare class DriverTrackingDAO {
|
|
|
5
5
|
private _knex?;
|
|
6
6
|
private get knex();
|
|
7
7
|
/**
|
|
8
|
-
* Batch create tracking points (for mobile uploads).
|
|
9
|
-
* Battery level is stored in metadata JSONB column for flexible querying.
|
|
10
|
-
*
|
|
11
8
|
* Locks the duty row with FOR UPDATE so a concurrent `startDutyWithItems`
|
|
12
9
|
* sweep can't flip the duty between the controller's pre-check and our
|
|
13
10
|
* INSERT. On race-loss we throw a tagged rejection; the controller turns
|
|
14
11
|
* it into the same 400 + reason_class the pre-check would have produced.
|
|
15
12
|
*/
|
|
16
13
|
createBatch(batch: IDriverTrackingBatchCreate): Promise<number>;
|
|
17
|
-
/**
|
|
18
|
-
* Get tracking points by session ID (for playback)
|
|
19
|
-
*/
|
|
20
14
|
getBySessionId(sessionId: string, page?: number, limit?: number): Promise<IDataPaginator<IDriverTracking>>;
|
|
21
15
|
/**
|
|
22
16
|
* Get all active drivers — one row per user, sourced from their latest
|
|
@@ -26,51 +20,17 @@ export declare class DriverTrackingDAO {
|
|
|
26
20
|
* after Start). Older in_progress duties for the same user never produce
|
|
27
21
|
* a second marker. No time bound on points: a driver with poor coverage
|
|
28
22
|
* who uploads infrequently stays visible.
|
|
29
|
-
*
|
|
30
|
-
* Extracts battery_level from metadata and converts speed from m/s to mph.
|
|
31
23
|
*/
|
|
32
24
|
getActiveDrivers(): Promise<IActiveDriver[]>;
|
|
33
25
|
private buildCurrentRoute;
|
|
34
26
|
private buildCurrentItem;
|
|
35
|
-
/**
|
|
36
|
-
* Get tracking sessions list
|
|
37
|
-
*/
|
|
38
27
|
getSessions(filters: ITrackingFilters, page?: number, limit?: number): Promise<IDataPaginator<ITrackingSession>>;
|
|
39
|
-
/**
|
|
40
|
-
* Get tracking points with filters
|
|
41
|
-
*/
|
|
42
28
|
getWithFilters(filters: ITrackingFilters, page?: number, limit?: number): Promise<IDataPaginator<IDriverTracking>>;
|
|
43
|
-
/**
|
|
44
|
-
* End a tracking session (mark points as not navigating)
|
|
45
|
-
*/
|
|
46
29
|
endSession(sessionId: string, userId: number): Promise<number>;
|
|
47
|
-
/**
|
|
48
|
-
* Get latest location for a user
|
|
49
|
-
*/
|
|
50
30
|
getLatestByUserId(userId: number): Promise<IDriverTracking | null>;
|
|
51
|
-
/**
|
|
52
|
-
* Get all tracking points for a duty (for consolidation)
|
|
53
|
-
*/
|
|
54
31
|
getByDutyId(dutyId: number): Promise<IDriverTracking[]>;
|
|
55
|
-
/**
|
|
56
|
-
* Delete all tracking points for a duty (after consolidation)
|
|
57
|
-
*/
|
|
58
32
|
deleteByDutyId(dutyId: number): Promise<number>;
|
|
59
|
-
/**
|
|
60
|
-
* Convert driver tracking records to ITrackPoint array (for consolidation)
|
|
61
|
-
*/
|
|
62
33
|
toTrackPoints(points: IDriverTracking[]): ITrackPoint[];
|
|
63
|
-
/**
|
|
64
|
-
* Extract battery_level from metadata JSONB column.
|
|
65
|
-
* Returns null if metadata is missing or battery_level is not present.
|
|
66
|
-
* Handles both string (from database) and object (parsed) metadata.
|
|
67
|
-
*/
|
|
68
34
|
private extractBatteryLevel;
|
|
69
|
-
/**
|
|
70
|
-
* Convert speed from meters per second (m/s) to miles per hour (mph).
|
|
71
|
-
* Returns null if speed is not available.
|
|
72
|
-
* Clamps negative values to zero (defensive programming for GPS sensor errors).
|
|
73
|
-
* Conversion factor: 1 m/s = 2.23694 mph
|
|
74
|
-
*/
|
|
75
35
|
private convertSpeedToMph;
|
|
76
36
|
}
|
|
@@ -30,9 +30,6 @@ class DriverTrackingDAO {
|
|
|
30
30
|
return this._knex;
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
|
-
* Batch create tracking points (for mobile uploads).
|
|
34
|
-
* Battery level is stored in metadata JSONB column for flexible querying.
|
|
35
|
-
*
|
|
36
33
|
* Locks the duty row with FOR UPDATE so a concurrent `startDutyWithItems`
|
|
37
34
|
* sweep can't flip the duty between the controller's pre-check and our
|
|
38
35
|
* INSERT. On race-loss we throw a tagged rejection; the controller turns
|
|
@@ -95,9 +92,6 @@ class DriverTrackingDAO {
|
|
|
95
92
|
}));
|
|
96
93
|
});
|
|
97
94
|
}
|
|
98
|
-
/**
|
|
99
|
-
* Get tracking points by session ID (for playback)
|
|
100
|
-
*/
|
|
101
95
|
getBySessionId(sessionId_1) {
|
|
102
96
|
return __awaiter(this, arguments, void 0, function* (sessionId, page = 1, limit = 5000) {
|
|
103
97
|
const offset = (page - 1) * limit;
|
|
@@ -131,8 +125,6 @@ class DriverTrackingDAO {
|
|
|
131
125
|
* after Start). Older in_progress duties for the same user never produce
|
|
132
126
|
* a second marker. No time bound on points: a driver with poor coverage
|
|
133
127
|
* who uploads infrequently stays visible.
|
|
134
|
-
*
|
|
135
|
-
* Extracts battery_level from metadata and converts speed from m/s to mph.
|
|
136
128
|
*/
|
|
137
129
|
getActiveDrivers() {
|
|
138
130
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -225,9 +217,6 @@ class DriverTrackingDAO {
|
|
|
225
217
|
: null,
|
|
226
218
|
};
|
|
227
219
|
}
|
|
228
|
-
/**
|
|
229
|
-
* Get tracking sessions list
|
|
230
|
-
*/
|
|
231
220
|
getSessions(filters_1) {
|
|
232
221
|
return __awaiter(this, arguments, void 0, function* (filters, page = 1, limit = 20) {
|
|
233
222
|
const offset = (page - 1) * limit;
|
|
@@ -235,7 +224,6 @@ class DriverTrackingDAO {
|
|
|
235
224
|
.select("dt.session_id", "dt.user_id", "dt.duty_id")
|
|
236
225
|
.select(this.knex.raw("MIN(dt.recorded_at) as started_at"), this.knex.raw("MAX(dt.recorded_at) as ended_at"), this.knex.raw("COUNT(*) as total_points"))
|
|
237
226
|
.groupBy("dt.session_id", "dt.user_id", "dt.duty_id");
|
|
238
|
-
// Apply filters
|
|
239
227
|
if (filters.user_id) {
|
|
240
228
|
query = query.where("dt.user_id", filters.user_id);
|
|
241
229
|
}
|
|
@@ -248,7 +236,6 @@ class DriverTrackingDAO {
|
|
|
248
236
|
if (filters.to_date) {
|
|
249
237
|
query = query.where("dt.recorded_at", "<=", filters.to_date);
|
|
250
238
|
}
|
|
251
|
-
// Wrap for counting and joining
|
|
252
239
|
const sessionsQuery = this.knex
|
|
253
240
|
.from(query.as("sessions"))
|
|
254
241
|
.leftJoin("users as u", "sessions.user_id", "u.id")
|
|
@@ -260,13 +247,11 @@ class DriverTrackingDAO {
|
|
|
260
247
|
'first_name', u.first_name,
|
|
261
248
|
'last_name', u.last_name
|
|
262
249
|
) as user`));
|
|
263
|
-
// Get count
|
|
264
250
|
const countResult = yield this.knex
|
|
265
251
|
.from(query.clone().as("count_sessions"))
|
|
266
252
|
.count("* as count")
|
|
267
253
|
.first();
|
|
268
254
|
const totalCount = Number((countResult === null || countResult === void 0 ? void 0 : countResult.count) || 0);
|
|
269
|
-
// Get paginated data
|
|
270
255
|
const data = yield sessionsQuery
|
|
271
256
|
.orderBy("sessions.started_at", "desc")
|
|
272
257
|
.limit(limit)
|
|
@@ -290,9 +275,6 @@ class DriverTrackingDAO {
|
|
|
290
275
|
};
|
|
291
276
|
});
|
|
292
277
|
}
|
|
293
|
-
/**
|
|
294
|
-
* Get tracking points with filters
|
|
295
|
-
*/
|
|
296
278
|
getWithFilters(filters_1) {
|
|
297
279
|
return __awaiter(this, arguments, void 0, function* (filters, page = 1, limit = 100) {
|
|
298
280
|
const offset = (page - 1) * limit;
|
|
@@ -339,9 +321,6 @@ class DriverTrackingDAO {
|
|
|
339
321
|
};
|
|
340
322
|
});
|
|
341
323
|
}
|
|
342
|
-
/**
|
|
343
|
-
* End a tracking session (mark points as not navigating)
|
|
344
|
-
*/
|
|
345
324
|
endSession(sessionId, userId) {
|
|
346
325
|
return __awaiter(this, void 0, void 0, function* () {
|
|
347
326
|
const result = yield this.knex("driver_tracking")
|
|
@@ -355,9 +334,6 @@ class DriverTrackingDAO {
|
|
|
355
334
|
return result;
|
|
356
335
|
});
|
|
357
336
|
}
|
|
358
|
-
/**
|
|
359
|
-
* Get latest location for a user
|
|
360
|
-
*/
|
|
361
337
|
getLatestByUserId(userId) {
|
|
362
338
|
return __awaiter(this, void 0, void 0, function* () {
|
|
363
339
|
const result = yield this.knex("driver_tracking")
|
|
@@ -367,9 +343,6 @@ class DriverTrackingDAO {
|
|
|
367
343
|
return result || null;
|
|
368
344
|
});
|
|
369
345
|
}
|
|
370
|
-
/**
|
|
371
|
-
* Get all tracking points for a duty (for consolidation)
|
|
372
|
-
*/
|
|
373
346
|
getByDutyId(dutyId) {
|
|
374
347
|
return __awaiter(this, void 0, void 0, function* () {
|
|
375
348
|
return this.knex("driver_tracking")
|
|
@@ -377,17 +350,11 @@ class DriverTrackingDAO {
|
|
|
377
350
|
.orderBy("recorded_at", "asc");
|
|
378
351
|
});
|
|
379
352
|
}
|
|
380
|
-
/**
|
|
381
|
-
* Delete all tracking points for a duty (after consolidation)
|
|
382
|
-
*/
|
|
383
353
|
deleteByDutyId(dutyId) {
|
|
384
354
|
return __awaiter(this, void 0, void 0, function* () {
|
|
385
355
|
return this.knex("driver_tracking").where("duty_id", dutyId).delete();
|
|
386
356
|
});
|
|
387
357
|
}
|
|
388
|
-
/**
|
|
389
|
-
* Convert driver tracking records to ITrackPoint array (for consolidation)
|
|
390
|
-
*/
|
|
391
358
|
toTrackPoints(points) {
|
|
392
359
|
return points.map((p) => ({
|
|
393
360
|
lat: Number(p.latitude),
|
|
@@ -401,41 +368,29 @@ class DriverTrackingDAO {
|
|
|
401
368
|
: p.recorded_at.toISOString(),
|
|
402
369
|
}));
|
|
403
370
|
}
|
|
404
|
-
|
|
405
|
-
* Extract battery_level from metadata JSONB column.
|
|
406
|
-
* Returns null if metadata is missing or battery_level is not present.
|
|
407
|
-
* Handles both string (from database) and object (parsed) metadata.
|
|
408
|
-
*/
|
|
371
|
+
// Handles both string (from database) and object (parsed) metadata.
|
|
409
372
|
extractBatteryLevel(metadata) {
|
|
410
373
|
if (!metadata)
|
|
411
374
|
return null;
|
|
412
375
|
try {
|
|
413
|
-
// If metadata is a string, parse it
|
|
414
376
|
const parsed = typeof metadata === 'string' ? JSON.parse(metadata) : metadata;
|
|
415
|
-
// Extract battery_level if present
|
|
416
377
|
if (parsed && typeof parsed.battery_level === 'number') {
|
|
417
378
|
return parsed.battery_level;
|
|
418
379
|
}
|
|
419
380
|
return null;
|
|
420
381
|
}
|
|
421
382
|
catch (error) {
|
|
422
|
-
// If parsing fails, return null (backwards compatibility)
|
|
423
383
|
return null;
|
|
424
384
|
}
|
|
425
385
|
}
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
* Returns null if speed is not available.
|
|
429
|
-
* Clamps negative values to zero (defensive programming for GPS sensor errors).
|
|
430
|
-
* Conversion factor: 1 m/s = 2.23694 mph
|
|
431
|
-
*/
|
|
386
|
+
// Clamps negative values to zero to guard against GPS sensor errors.
|
|
387
|
+
// Conversion factor: 1 m/s = 2.23694 mph
|
|
432
388
|
convertSpeedToMph(speedMs) {
|
|
433
389
|
if (speedMs === null || speedMs === undefined)
|
|
434
390
|
return null;
|
|
435
391
|
const speed = parseFloat(String(speedMs));
|
|
436
392
|
if (isNaN(speed))
|
|
437
393
|
return null;
|
|
438
|
-
// Convert m/s to mph, clamp to non-negative, and round to 2 decimal places
|
|
439
394
|
const speedMph = speed * 2.23694;
|
|
440
395
|
return Math.round(Math.max(0, speedMph) * 100) / 100;
|
|
441
396
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver-tracking.dao.js","sourceRoot":"","sources":["../../../src/dao/driver-tracking/driver-tracking.dao.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"driver-tracking.dao.js","sourceRoot":"","sources":["../../../src/dao/driver-tracking/driver-tracking.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+BAAoC;AACpC,0EAA+C;AAa/C,SAAS,WAAW,CAClB,OAAe,EACf,aAA4B,IAAI,EAChC,qBAAoC,IAAI;IAExC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;QACvC,qBAAqB,EAAE,IAAa;QACpC,UAAU;QACV,kBAAkB;KACnB,CAAC,CAAC;AACL,CAAC;AAED,MAAa,iBAAiB;IAG5B,IAAY,IAAI;QACd,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,wBAAW,CAAC,aAAa,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACG,WAAW,CAAC,KAAiC;;YACjD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACtC,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;oBACtE,QAAQ,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;gBAC/C,CAAC;gBAED,OAAO;oBACL,IAAI,EAAE,IAAA,SAAM,GAAE;oBACd,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;oBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;oBAChC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;oBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;oBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,aAAa,EAAE,IAAI;oBACnB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;iBAC7E,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAO,GAAG,EAAE,EAAE;gBACzC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC;qBAC7B,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;qBAC1B,SAAS,EAAE;qBACX,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;qBACnC,KAAK,EAAE,CAAC;gBAEX,IAAI,CAAC,IAAI;oBAAE,MAAM,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAE/C,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,KAAK,aAAa;oBAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC;wBAC3D,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC;gBAExC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,WAAW,CACf,+CAA+C,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,eAAe,EAAE,EACtG,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,eAAe,CACrB,CAAC;gBACJ,CAAC;gBAED,yCAAyC;gBACzC,oEAAoE;gBACpE,kEAAkE;gBAClE,sEAAsE;gBACtE,sEAAsE;gBACtE,qEAAqE;gBACrE,+CAA+C;gBAC/C,EAAE;gBACF,wEAAwE;gBACxE,wEAAwE;gBACxE,sEAAsE;gBACtE,2CAA2C;gBAC3C,MAAM,GAAG,CAAC,iBAAiB,CAAC;qBACzB,MAAM,CAAC,OAAO,CAAC;qBACf,UAAU,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;qBAClE,MAAM,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAC,MAAM,CAAC;YACxB,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEK,cAAc;6DAClB,SAAiB,EACjB,OAAe,CAAC,EAChB,QAAgB,IAAI;YAEpB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAElC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBAC5C,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;iBAC9B,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC;iBAC7B,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,MAAM,CAAC,CAAC;YAElB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBACxD,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;iBAC9B,KAAK,CAAC,YAAY,CAAC;iBACnB,KAAK,EAAE,CAAC;YAEX,MAAM,UAAU,GAAG,MAAM,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,KAAI,CAAC,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;YAEjD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,UAAU;gBACV,UAAU;aACX,CAAC;QACJ,CAAC;KAAA;IAED;;;;;;;;OAQG;IACG,gBAAgB;;YACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI;iBAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;gBAChB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;qBACrB,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,QAAQ,CAAC;qBACd,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC;qBAC9B,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC;qBACxB,UAAU,CAAC,sDAAsD,CAAC,CAAC;YACxE,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC;iBACT,OAAO,CACN;;;;;;6BAMqB,CACtB;iBACA,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC;iBAC3C,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC;gBAC9C,sEAAsE;iBACrE,OAAO,CACN;;;;;;;uBAOe,CAChB;iBACA,QAAQ,CAAC,4BAA4B,EAAE,QAAQ,EAAE,sBAAsB,CAAC;iBACxE,QAAQ,CACP,aAAa,EACb,MAAM,EACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CACtD;iBACA,MAAM,CACL,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,EACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,EACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,EAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,EAC9B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACjC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;kBAMJ,CAAC,CACZ,CAAC;YAEJ,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;;gBAAC,OAAA,CAAC;oBAChC,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,UAAU,EAAE,MAAA,GAAG,CAAC,UAAU,mCAAI,IAAI;oBAClC,gBAAgB,EAAE;wBAChB,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC;wBAClC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC;wBACpC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;wBACrD,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC;wBACxC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;wBACrD,WAAW,EAAE,GAAG,CAAC,WAAW;qBAC7B;oBACD,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;oBAC1C,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;iBACzC,CAAC,CAAA;aAAA,CAAC,CAAC;QACN,CAAC;KAAA;IAEO,iBAAiB,CAAC,GAAQ;;QAChC,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,UAAU;YACpB,IAAI,EAAE,GAAG,CAAC,UAAU;YACpB,IAAI,EAAE,MAAA,GAAG,CAAC,UAAU,mCAAI,IAAI;SAC7B,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,GAAQ;;QAC/B,IAAI,CAAC,GAAG,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAEpC,qFAAqF;QACrF,MAAM,IAAI,GAAqB,GAAG,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,SAAS,mCAAI,IAAI,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,UAAU,mCAAI,IAAI,CAAC;QAE9E,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,aAAa;YACvB,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7B,IAAI;YACJ,YAAY,EAAE,MAAA,GAAG,CAAC,YAAY,mCAAI,KAAK;YACvC,UAAU,EAAE,MAAM,CAAC,MAAA,GAAG,CAAC,UAAU,mCAAI,CAAC,CAAC;YACvC,UAAU,EAAE,GAAG,CAAC,UAAU;gBACxB,CAAC,CAAC,GAAG,CAAC,UAAU,YAAY,IAAI;oBAC9B,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE;oBAC9B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC1B,CAAC,CAAC,IAAI;SACT,CAAC;IACJ,CAAC;IAEK,WAAW;6DACf,OAAyB,EACzB,OAAe,CAAC,EAChB,QAAgB,EAAE;YAElB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAElC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;iBAC3C,MAAM,CAAC,eAAe,EAAE,YAAY,EAAE,YAAY,CAAC;iBACnD,MAAM,CACL,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,EAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iCAAiC,CAAC,EAChD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAC1C;iBACA,OAAO,CACN,eAAe,EACf,YAAY,EACZ,YAAY,CACb,CAAC;YAEJ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI;iBAC5B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;iBAC1B,QAAQ,CAAC,YAAY,EAAE,kBAAkB,EAAE,MAAM,CAAC;iBAClD,QAAQ,CAAC,aAAa,EAAE,kBAAkB,EAAE,MAAM,CAAC;iBACnD,MAAM,CACL,YAAY,EACZ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,EACpC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;kBAMJ,CAAC,CACZ,CAAC;YAEJ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI;iBAChC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;iBACxC,KAAK,CAAC,YAAY,CAAC;iBACnB,KAAK,EAAE,CAAC;YAEX,MAAM,UAAU,GAAG,MAAM,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,KAAI,CAAC,CAAC,CAAC;YAEnD,MAAM,IAAI,GAAG,MAAM,aAAa;iBAC7B,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;iBACtC,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,MAAM,CAAC,CAAC;YAElB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;YAEjD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,CAAC;oBAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC;iBACzC,CAAC,CAAC;gBACH,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,UAAU;gBACV,UAAU;aACX,CAAC;QACJ,CAAC;KAAA;IAEK,cAAc;6DAClB,OAAyB,EACzB,OAAe,CAAC,EAChB,QAAgB,GAAG;YAEnB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAElC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;iBAC3C,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC;iBAC5C,MAAM,CACL,MAAM,EACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;;;;;;kBAMJ,CAAC,CACZ,CAAC;YAEJ,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,UAAU;gBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YACjF,IAAI,OAAO,CAAC,SAAS;gBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YACtF,IAAI,OAAO,CAAC,OAAO;gBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAClF,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;gBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAExG,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,gBAAgB,GAAG,MAAM,UAAU;iBACtC,WAAW,EAAE;iBACb,KAAK,CAAC,gBAAgB,CAAC;iBACvB,KAAK,EAAE,CAAC;YAEX,MAAM,UAAU,GAAG,MAAM,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,KAAI,CAAC,CAAC,CAAC;YAExD,MAAM,IAAI,GAAG,MAAM,KAAK;iBACrB,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC;iBACjC,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,MAAM,CAAC,CAAC;YAElB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;YAEjD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI;gBACJ,IAAI;gBACJ,KAAK;gBACL,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,UAAU;gBACV,UAAU;aACX,CAAC;QACJ,CAAC;KAAA;IAEK,UAAU,CAAC,SAAiB,EAAE,MAAc;;YAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBAC9C,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC;iBAC9B,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;iBACxB,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC;iBAC5B,MAAM,CAAC;gBACN,aAAa,EAAE,KAAK;gBACpB,UAAU,EAAE,IAAI,IAAI,EAAE;aACvB,CAAC,CAAC;YAEL,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAEK,iBAAiB,CAAC,MAAc;;YACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBAC9C,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;iBACxB,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC;iBAC9B,KAAK,EAAE,CAAC;YAEX,OAAO,MAAM,IAAI,IAAI,CAAC;QACxB,CAAC;KAAA;IAEK,WAAW,CAAC,MAAc;;YAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC;iBAChC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;iBACxB,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;KAAA;IAEK,cAAc,CAAC,MAAc;;YACjC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;QACxE,CAAC;KAAA;IAED,aAAa,CAAC,MAAyB;QACrC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;YACvB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;YACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAChD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YACvC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YAC7C,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAChD,WAAW,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;gBAC5C,CAAC,CAAC,CAAC,CAAC,WAAW;gBACf,CAAC,CAAE,CAAC,CAAC,WAAoB,CAAC,WAAW,EAAE;SAC1C,CAAC,CAAC,CAAC;IACN,CAAC;IAED,oEAAoE;IAC5D,mBAAmB,CAAC,QAAa;QACvC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAE9E,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,MAAM,CAAC,aAAa,CAAC;YAC9B,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,yCAAyC;IACjC,iBAAiB,CAAC,OAAsB;QAC9C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAE3D,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACvD,CAAC;CACF;AAjcD,8CAicC"}
|
|
@@ -6,59 +6,18 @@ export declare class DutyDAO implements IBaseDAO<IDuty> {
|
|
|
6
6
|
private _dutyTrackDAO?;
|
|
7
7
|
private get knex();
|
|
8
8
|
private get dutyTrackDAO();
|
|
9
|
-
/**
|
|
10
|
-
* Parse JSON fields from database results
|
|
11
|
-
*/
|
|
12
9
|
private parseDutyJson;
|
|
13
|
-
/**
|
|
14
|
-
* Base query with all joins
|
|
15
|
-
*/
|
|
16
10
|
private baseQuery;
|
|
17
|
-
/**
|
|
18
|
-
* Get all duties with pagination
|
|
19
|
-
*/
|
|
20
11
|
getAll(page?: number, limit?: number): Promise<IDataPaginator<IDuty>>;
|
|
21
|
-
/**
|
|
22
|
-
* Get duty by ID
|
|
23
|
-
*/
|
|
24
12
|
getById(id: number): Promise<IDuty | null>;
|
|
25
|
-
/**
|
|
26
|
-
* Get duty by UUID
|
|
27
|
-
*/
|
|
28
13
|
getByUuid(uuid: string): Promise<IDuty | null>;
|
|
29
|
-
/**
|
|
30
|
-
* Get duties by user ID
|
|
31
|
-
*/
|
|
32
14
|
getByUserId(userId: number, page?: number, limit?: number, filters?: IDutyFilters): Promise<IDataPaginator<IDuty>>;
|
|
33
|
-
/**
|
|
34
|
-
* Get duties by event ID
|
|
35
|
-
*/
|
|
36
15
|
getByEventId(eventId: number, page?: number, limit?: number, filters?: IDutyFilters): Promise<IDataPaginator<IDuty>>;
|
|
37
|
-
/**
|
|
38
|
-
* Get active duties for a user (today or future, status = pending or in_progress)
|
|
39
|
-
*/
|
|
40
16
|
getActiveByUserId(userId: number): Promise<IDuty[]>;
|
|
41
|
-
/**
|
|
42
|
-
* Get a user's duty for today
|
|
43
|
-
* @param userId - The user's ID
|
|
44
|
-
* @param clientDate - Optional YYYY-MM-DD date string from client (to handle timezone differences)
|
|
45
|
-
*/
|
|
46
17
|
getTodayByUserId(userId: number, clientDate?: string): Promise<IDuty[]>;
|
|
47
|
-
/**
|
|
48
|
-
* Find a duty for a specific user, event, and date combination.
|
|
49
|
-
*/
|
|
50
18
|
getByUserIdEventIdAndDate(userId: number, eventId: number, dutyDate: string): Promise<IDuty | null>;
|
|
51
|
-
/**
|
|
52
|
-
* Get duties by status
|
|
53
|
-
*/
|
|
54
19
|
getByStatus(status: string, page?: number, limit?: number): Promise<IDataPaginator<IDuty>>;
|
|
55
|
-
/**
|
|
56
|
-
* Create a new duty
|
|
57
|
-
*/
|
|
58
20
|
create(data: IDutyCreate): Promise<IDuty>;
|
|
59
|
-
/**
|
|
60
|
-
* Update a duty by ID
|
|
61
|
-
*/
|
|
62
21
|
update(id: number, data: IDutyUpdate): Promise<IDuty | null>;
|
|
63
22
|
/**
|
|
64
23
|
* Delete a duty by ID (hard delete).
|
|
@@ -66,26 +25,10 @@ export declare class DutyDAO implements IBaseDAO<IDuty> {
|
|
|
66
25
|
* are removed automatically via CASCADE.
|
|
67
26
|
*/
|
|
68
27
|
delete(id: number): Promise<boolean>;
|
|
69
|
-
/**
|
|
70
|
-
* Update tracking status for a duty
|
|
71
|
-
*/
|
|
72
28
|
updateTrackingStatus(id: number, trackingStatus: "none" | "tracking" | "syncing" | "consolidated"): Promise<IDuty | null>;
|
|
73
|
-
/**
|
|
74
|
-
* Start a duty (transition to in_progress)
|
|
75
|
-
*/
|
|
76
29
|
startDuty(id: number, trackingSessionId?: string, trx?: Knex.Transaction): Promise<IDuty | null>;
|
|
77
|
-
/**
|
|
78
|
-
* Complete a duty
|
|
79
|
-
*/
|
|
80
30
|
completeDuty(id: number): Promise<IDuty | null>;
|
|
81
|
-
/**
|
|
82
|
-
* Cancel a duty (single atomic update to avoid TOCTOU race)
|
|
83
|
-
*/
|
|
84
31
|
cancelDuty(id: number): Promise<IDuty | null>;
|
|
85
|
-
/**
|
|
86
|
-
* Restart a completed or cancelled duty back to pending.
|
|
87
|
-
* Clears tracking data and deletes item progress records.
|
|
88
|
-
*/
|
|
89
32
|
restartDuty(id: number): Promise<IDuty | null>;
|
|
90
33
|
/**
|
|
91
34
|
* Start a duty and create item progress records in a single transaction.
|
|
@@ -100,8 +43,5 @@ export declare class DutyDAO implements IBaseDAO<IDuty> {
|
|
|
100
43
|
template_item_id: number;
|
|
101
44
|
item_order: number;
|
|
102
45
|
}[]): Promise<IDuty | null>;
|
|
103
|
-
/**
|
|
104
|
-
* Check if a duty already exists for a template + user + date combination
|
|
105
|
-
*/
|
|
106
46
|
hasDuplicateDuty(dutyTemplateId: number, userId: number, dutyDate: Date | string): Promise<boolean>;
|
|
107
47
|
}
|
|
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.DutyDAO = void 0;
|
|
16
16
|
const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
|
|
17
17
|
const duty_track_dao_1 = require("../duty-track/duty-track.dao");
|
|
18
|
-
/** Format a Date as "YYYY-MM-DD" using the server's local calendar date. */
|
|
19
18
|
function toLocalDateString(date) {
|
|
20
19
|
const y = date.getFullYear();
|
|
21
20
|
const m = String(date.getMonth() + 1).padStart(2, "0");
|
|
@@ -35,9 +34,6 @@ class DutyDAO {
|
|
|
35
34
|
}
|
|
36
35
|
return this._dutyTrackDAO;
|
|
37
36
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Parse JSON fields from database results
|
|
40
|
-
*/
|
|
41
37
|
parseDutyJson(duty) {
|
|
42
38
|
var _a, _b;
|
|
43
39
|
if (duty.duty_template && typeof duty.duty_template === "string") {
|
|
@@ -60,9 +56,6 @@ class DutyDAO {
|
|
|
60
56
|
}
|
|
61
57
|
return duty;
|
|
62
58
|
}
|
|
63
|
-
/**
|
|
64
|
-
* Base query with all joins
|
|
65
|
-
*/
|
|
66
59
|
baseQuery() {
|
|
67
60
|
return this.knex("duties as d")
|
|
68
61
|
.leftJoin("duty_templates as dt", "d.duty_template_id", "dt.id")
|
|
@@ -93,9 +86,6 @@ class DutyDAO {
|
|
|
93
86
|
'role', to_jsonb(ar.*)
|
|
94
87
|
) ELSE NULL END as assigner`));
|
|
95
88
|
}
|
|
96
|
-
/**
|
|
97
|
-
* Get all duties with pagination
|
|
98
|
-
*/
|
|
99
89
|
getAll() {
|
|
100
90
|
return __awaiter(this, arguments, void 0, function* (page = 1, limit = 10) {
|
|
101
91
|
const offset = (page - 1) * limit;
|
|
@@ -115,9 +105,6 @@ class DutyDAO {
|
|
|
115
105
|
return { success: true, data, page, limit, count, totalCount, totalPages };
|
|
116
106
|
});
|
|
117
107
|
}
|
|
118
|
-
/**
|
|
119
|
-
* Get duty by ID
|
|
120
|
-
*/
|
|
121
108
|
getById(id) {
|
|
122
109
|
return __awaiter(this, void 0, void 0, function* () {
|
|
123
110
|
const result = yield this.baseQuery()
|
|
@@ -127,9 +114,6 @@ class DutyDAO {
|
|
|
127
114
|
return result ? this.parseDutyJson(result) : null;
|
|
128
115
|
});
|
|
129
116
|
}
|
|
130
|
-
/**
|
|
131
|
-
* Get duty by UUID
|
|
132
|
-
*/
|
|
133
117
|
getByUuid(uuid) {
|
|
134
118
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
119
|
const result = yield this.baseQuery()
|
|
@@ -139,9 +123,6 @@ class DutyDAO {
|
|
|
139
123
|
return result ? this.parseDutyJson(result) : null;
|
|
140
124
|
});
|
|
141
125
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Get duties by user ID
|
|
144
|
-
*/
|
|
145
126
|
getByUserId(userId_1) {
|
|
146
127
|
return __awaiter(this, arguments, void 0, function* (userId, page = 1, limit = 10, filters) {
|
|
147
128
|
const offset = (page - 1) * limit;
|
|
@@ -179,9 +160,6 @@ class DutyDAO {
|
|
|
179
160
|
return { success: true, data, page, limit, count, totalCount, totalPages };
|
|
180
161
|
});
|
|
181
162
|
}
|
|
182
|
-
/**
|
|
183
|
-
* Get duties by event ID
|
|
184
|
-
*/
|
|
185
163
|
getByEventId(eventId_1) {
|
|
186
164
|
return __awaiter(this, arguments, void 0, function* (eventId, page = 1, limit = 10, filters) {
|
|
187
165
|
const offset = (page - 1) * limit;
|
|
@@ -219,9 +197,6 @@ class DutyDAO {
|
|
|
219
197
|
return { success: true, data, page, limit, count, totalCount, totalPages };
|
|
220
198
|
});
|
|
221
199
|
}
|
|
222
|
-
/**
|
|
223
|
-
* Get active duties for a user (today or future, status = pending or in_progress)
|
|
224
|
-
*/
|
|
225
200
|
getActiveByUserId(userId) {
|
|
226
201
|
return __awaiter(this, void 0, void 0, function* () {
|
|
227
202
|
const today = toLocalDateString(new Date());
|
|
@@ -234,14 +209,8 @@ class DutyDAO {
|
|
|
234
209
|
return rawData.map((duty) => this.parseDutyJson(duty));
|
|
235
210
|
});
|
|
236
211
|
}
|
|
237
|
-
/**
|
|
238
|
-
* Get a user's duty for today
|
|
239
|
-
* @param userId - The user's ID
|
|
240
|
-
* @param clientDate - Optional YYYY-MM-DD date string from client (to handle timezone differences)
|
|
241
|
-
*/
|
|
242
212
|
getTodayByUserId(userId, clientDate) {
|
|
243
213
|
return __awaiter(this, void 0, void 0, function* () {
|
|
244
|
-
// Use client's date if provided and valid, otherwise fall back to server's local date
|
|
245
214
|
const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
|
|
246
215
|
const today = clientDate && dateRegex.test(clientDate)
|
|
247
216
|
? clientDate
|
|
@@ -254,9 +223,6 @@ class DutyDAO {
|
|
|
254
223
|
return rawData.map((duty) => this.parseDutyJson(duty));
|
|
255
224
|
});
|
|
256
225
|
}
|
|
257
|
-
/**
|
|
258
|
-
* Find a duty for a specific user, event, and date combination.
|
|
259
|
-
*/
|
|
260
226
|
getByUserIdEventIdAndDate(userId, eventId, dutyDate) {
|
|
261
227
|
return __awaiter(this, void 0, void 0, function* () {
|
|
262
228
|
const result = yield this.baseQuery()
|
|
@@ -268,9 +234,6 @@ class DutyDAO {
|
|
|
268
234
|
return result ? this.parseDutyJson(result) : null;
|
|
269
235
|
});
|
|
270
236
|
}
|
|
271
|
-
/**
|
|
272
|
-
* Get duties by status
|
|
273
|
-
*/
|
|
274
237
|
getByStatus(status_1) {
|
|
275
238
|
return __awaiter(this, arguments, void 0, function* (status, page = 1, limit = 10) {
|
|
276
239
|
const offset = (page - 1) * limit;
|
|
@@ -292,9 +255,6 @@ class DutyDAO {
|
|
|
292
255
|
return { success: true, data, page, limit, count, totalCount, totalPages };
|
|
293
256
|
});
|
|
294
257
|
}
|
|
295
|
-
/**
|
|
296
|
-
* Create a new duty
|
|
297
|
-
*/
|
|
298
258
|
create(data) {
|
|
299
259
|
return __awaiter(this, void 0, void 0, function* () {
|
|
300
260
|
const [result] = yield this.knex("duties")
|
|
@@ -312,9 +272,6 @@ class DutyDAO {
|
|
|
312
272
|
return this.getById(result.id);
|
|
313
273
|
});
|
|
314
274
|
}
|
|
315
|
-
/**
|
|
316
|
-
* Update a duty by ID
|
|
317
|
-
*/
|
|
318
275
|
update(id, data) {
|
|
319
276
|
return __awaiter(this, void 0, void 0, function* () {
|
|
320
277
|
const updateData = {};
|
|
@@ -353,9 +310,6 @@ class DutyDAO {
|
|
|
353
310
|
return result > 0;
|
|
354
311
|
});
|
|
355
312
|
}
|
|
356
|
-
/**
|
|
357
|
-
* Update tracking status for a duty
|
|
358
|
-
*/
|
|
359
313
|
updateTrackingStatus(id, trackingStatus) {
|
|
360
314
|
return __awaiter(this, void 0, void 0, function* () {
|
|
361
315
|
const [result] = yield this.knex("duties")
|
|
@@ -368,9 +322,6 @@ class DutyDAO {
|
|
|
368
322
|
return result ? this.getById(result.id) : null;
|
|
369
323
|
});
|
|
370
324
|
}
|
|
371
|
-
/**
|
|
372
|
-
* Start a duty (transition to in_progress)
|
|
373
|
-
*/
|
|
374
325
|
startDuty(id, trackingSessionId, trx) {
|
|
375
326
|
return __awaiter(this, void 0, void 0, function* () {
|
|
376
327
|
const qb = trx || this.knex;
|
|
@@ -391,9 +342,6 @@ class DutyDAO {
|
|
|
391
342
|
return result ? this.getById(result.id) : null;
|
|
392
343
|
});
|
|
393
344
|
}
|
|
394
|
-
/**
|
|
395
|
-
* Complete a duty
|
|
396
|
-
*/
|
|
397
345
|
completeDuty(id) {
|
|
398
346
|
return __awaiter(this, void 0, void 0, function* () {
|
|
399
347
|
const result = yield this.knex.transaction((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -420,9 +368,7 @@ class DutyDAO {
|
|
|
420
368
|
return result ? this.getById(result.id) : null;
|
|
421
369
|
});
|
|
422
370
|
}
|
|
423
|
-
|
|
424
|
-
* Cancel a duty (single atomic update to avoid TOCTOU race)
|
|
425
|
-
*/
|
|
371
|
+
// Single atomic update to avoid TOCTOU race.
|
|
426
372
|
cancelDuty(id) {
|
|
427
373
|
return __awaiter(this, void 0, void 0, function* () {
|
|
428
374
|
const result = yield this.knex.transaction((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -448,10 +394,6 @@ class DutyDAO {
|
|
|
448
394
|
return result ? this.getById(result.id) : null;
|
|
449
395
|
});
|
|
450
396
|
}
|
|
451
|
-
/**
|
|
452
|
-
* Restart a completed or cancelled duty back to pending.
|
|
453
|
-
* Clears tracking data and deletes item progress records.
|
|
454
|
-
*/
|
|
455
397
|
restartDuty(id) {
|
|
456
398
|
return __awaiter(this, void 0, void 0, function* () {
|
|
457
399
|
const result = yield this.knex.transaction((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -557,9 +499,6 @@ class DutyDAO {
|
|
|
557
499
|
return result ? this.getById(result.id) : null;
|
|
558
500
|
});
|
|
559
501
|
}
|
|
560
|
-
/**
|
|
561
|
-
* Check if a duty already exists for a template + user + date combination
|
|
562
|
-
*/
|
|
563
502
|
hasDuplicateDuty(dutyTemplateId, userId, dutyDate) {
|
|
564
503
|
return __awaiter(this, void 0, void 0, function* () {
|
|
565
504
|
const result = yield this.knex("duties")
|