@tmscloud/tbt-knex 0.0.4 → 0.0.6
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/dao/driver-tracking/driver-tracking.dao.d.ts +8 -0
- package/dist/dao/driver-tracking/driver-tracking.dao.js +25 -1
- package/dist/dao/driver-tracking/driver-tracking.dao.js.map +1 -1
- package/dist/dao/duty/duty.dao.d.ts +86 -0
- package/dist/dao/duty/duty.dao.js +416 -0
- package/dist/dao/duty/duty.dao.js.map +1 -0
- package/dist/dao/duty-item-progress/duty-item-progress.dao.d.ts +59 -0
- package/dist/dao/duty-item-progress/duty-item-progress.dao.js +229 -0
- package/dist/dao/duty-item-progress/duty-item-progress.dao.js.map +1 -0
- package/dist/dao/duty-template/duty-template.dao.d.ts +66 -0
- package/dist/dao/duty-template/duty-template.dao.js +369 -0
- package/dist/dao/duty-template/duty-template.dao.js.map +1 -0
- package/dist/dao/duty-track/duty-track.dao.d.ts +52 -0
- package/dist/dao/duty-track/duty-track.dao.js +259 -0
- package/dist/dao/duty-track/duty-track.dao.js.map +1 -0
- package/dist/dao/event/event.dao.js +9 -3
- package/dist/dao/event/event.dao.js.map +1 -1
- package/dist/dao/route/route.dao.d.ts +4 -0
- package/dist/dao/route/route.dao.js +18 -0
- package/dist/dao/route/route.dao.js.map +1 -1
- package/dist/dao/system-setting/system-setting.dao.d.ts +14 -0
- package/dist/dao/system-setting/system-setting.dao.js +99 -0
- package/dist/dao/system-setting/system-setting.dao.js.map +1 -0
- package/dist/dao/trip-track/trip-track.dao.d.ts +7 -0
- package/dist/dao/trip-track/trip-track.dao.js +63 -4
- package/dist/dao/trip-track/trip-track.dao.js.map +1 -1
- package/dist/index.d.ts +10 -0
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/driver-tracking/driver-tracking.interfaces.d.ts +5 -2
- package/dist/interfaces/duty/duty.interfaces.d.ts +48 -0
- package/dist/interfaces/duty/duty.interfaces.js +3 -0
- package/dist/interfaces/duty/duty.interfaces.js.map +1 -0
- package/dist/interfaces/duty-item-progress/duty-item-progress.interfaces.d.ts +30 -0
- package/dist/interfaces/duty-item-progress/duty-item-progress.interfaces.js +3 -0
- package/dist/interfaces/duty-item-progress/duty-item-progress.interfaces.js.map +1 -0
- package/dist/interfaces/duty-template/duty-template.interfaces.d.ts +75 -0
- package/dist/interfaces/duty-template/duty-template.interfaces.js +3 -0
- package/dist/interfaces/duty-template/duty-template.interfaces.js.map +1 -0
- package/dist/interfaces/duty-track/duty-track.interfaces.d.ts +39 -0
- package/dist/interfaces/duty-track/duty-track.interfaces.js +3 -0
- package/dist/interfaces/duty-track/duty-track.interfaces.js.map +1 -0
- package/dist/interfaces/route/route.interfaces.d.ts +1 -0
- package/dist/interfaces/system-setting/system-setting.interfaces.d.ts +27 -0
- package/dist/interfaces/system-setting/system-setting.interfaces.js +3 -0
- package/dist/interfaces/system-setting/system-setting.interfaces.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DutyTrackDAO = void 0;
|
|
16
|
+
const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
|
|
17
|
+
class DutyTrackDAO {
|
|
18
|
+
get knex() {
|
|
19
|
+
if (!this._knex) {
|
|
20
|
+
this._knex = KnexConnection_1.default.getConnection();
|
|
21
|
+
}
|
|
22
|
+
return this._knex;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create consolidated duty track
|
|
26
|
+
*/
|
|
27
|
+
create(data) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const [created] = yield this.knex("duty_track")
|
|
30
|
+
.insert({
|
|
31
|
+
duty_id: data.duty_id,
|
|
32
|
+
track_data: JSON.stringify(data.track_data),
|
|
33
|
+
max_speed: data.max_speed,
|
|
34
|
+
max_altitude: data.max_altitude,
|
|
35
|
+
total_distance: data.total_distance,
|
|
36
|
+
total_points: data.total_points,
|
|
37
|
+
start_coords: data.start_coords
|
|
38
|
+
? JSON.stringify(data.start_coords)
|
|
39
|
+
: null,
|
|
40
|
+
end_coords: data.end_coords ? JSON.stringify(data.end_coords) : null,
|
|
41
|
+
duration_seconds: data.duration_seconds,
|
|
42
|
+
})
|
|
43
|
+
.returning("*");
|
|
44
|
+
return this.parseJson(created);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get track by duty ID
|
|
49
|
+
*/
|
|
50
|
+
getByDutyId(dutyId) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const result = yield this.knex("duty_track")
|
|
53
|
+
.where("duty_id", dutyId)
|
|
54
|
+
.first();
|
|
55
|
+
if (!result)
|
|
56
|
+
return null;
|
|
57
|
+
return this.parseJson(result);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get track by UUID
|
|
62
|
+
*/
|
|
63
|
+
getByUuid(uuid) {
|
|
64
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
+
const result = yield this.knex("duty_track").where("uuid", uuid).first();
|
|
66
|
+
if (!result)
|
|
67
|
+
return null;
|
|
68
|
+
return this.parseJson(result);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if a duty already has a consolidated track
|
|
73
|
+
*/
|
|
74
|
+
existsForDuty(dutyId) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
const result = yield this.knex("duty_track")
|
|
77
|
+
.where("duty_id", dutyId)
|
|
78
|
+
.count("id as count")
|
|
79
|
+
.first();
|
|
80
|
+
return Number((result === null || result === void 0 ? void 0 : result.count) || 0) > 0;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Delete track by duty ID
|
|
85
|
+
*/
|
|
86
|
+
deleteByDutyId(dutyId) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const deleted = yield this.knex("duty_track")
|
|
89
|
+
.where("duty_id", dutyId)
|
|
90
|
+
.delete();
|
|
91
|
+
return deleted > 0;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Consolidate track from granular driver_tracking points.
|
|
96
|
+
* Returns null if zero points provided.
|
|
97
|
+
*/
|
|
98
|
+
consolidate(dutyId, points) {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
if (points.length === 0) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
const stats = this.computeStatistics(points);
|
|
104
|
+
return this.create(Object.assign({ duty_id: dutyId, track_data: points }, stats));
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Compute statistics from track points (single-pass)
|
|
109
|
+
*/
|
|
110
|
+
computeStatistics(points) {
|
|
111
|
+
if (points.length === 0) {
|
|
112
|
+
return {
|
|
113
|
+
max_speed: null,
|
|
114
|
+
max_altitude: null,
|
|
115
|
+
total_distance: null,
|
|
116
|
+
total_points: 0,
|
|
117
|
+
start_coords: null,
|
|
118
|
+
end_coords: null,
|
|
119
|
+
duration_seconds: null,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
let maxSpeed = null;
|
|
123
|
+
let maxAltitude = null;
|
|
124
|
+
let totalDistance = 0;
|
|
125
|
+
for (let i = 0; i < points.length; i++) {
|
|
126
|
+
const point = points[i];
|
|
127
|
+
if (point.speed !== null) {
|
|
128
|
+
if (maxSpeed === null || point.speed > maxSpeed) {
|
|
129
|
+
maxSpeed = point.speed;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (point.altitude !== null) {
|
|
133
|
+
if (maxAltitude === null || point.altitude > maxAltitude) {
|
|
134
|
+
maxAltitude = point.altitude;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (i > 0) {
|
|
138
|
+
const prevPoint = points[i - 1];
|
|
139
|
+
totalDistance += this.calculateDistance(prevPoint.lat, prevPoint.lng, point.lat, point.lng);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const startCoords = { lat: points[0].lat, lng: points[0].lng };
|
|
143
|
+
const endCoords = {
|
|
144
|
+
lat: points[points.length - 1].lat,
|
|
145
|
+
lng: points[points.length - 1].lng,
|
|
146
|
+
};
|
|
147
|
+
let durationSeconds = null;
|
|
148
|
+
const firstTime = new Date(points[0].recorded_at).getTime();
|
|
149
|
+
const lastTime = new Date(points[points.length - 1].recorded_at).getTime();
|
|
150
|
+
if (!isNaN(firstTime) && !isNaN(lastTime)) {
|
|
151
|
+
durationSeconds = Math.round((lastTime - firstTime) / 1000);
|
|
152
|
+
}
|
|
153
|
+
return {
|
|
154
|
+
max_speed: maxSpeed,
|
|
155
|
+
max_altitude: maxAltitude,
|
|
156
|
+
total_distance: Math.round(totalDistance * 100) / 100,
|
|
157
|
+
total_points: points.length,
|
|
158
|
+
start_coords: startCoords,
|
|
159
|
+
end_coords: endCoords,
|
|
160
|
+
duration_seconds: durationSeconds,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Calculate distance between two coordinates using Haversine formula.
|
|
165
|
+
* Returns distance in kilometers.
|
|
166
|
+
*/
|
|
167
|
+
calculateDistance(lat1, lon1, lat2, lon2) {
|
|
168
|
+
const R = 6371;
|
|
169
|
+
const dLat = this.toRad(lat2 - lat1);
|
|
170
|
+
const dLon = this.toRad(lon2 - lon1);
|
|
171
|
+
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
|
|
172
|
+
Math.cos(this.toRad(lat1)) *
|
|
173
|
+
Math.cos(this.toRad(lat2)) *
|
|
174
|
+
Math.sin(dLon / 2) *
|
|
175
|
+
Math.sin(dLon / 2);
|
|
176
|
+
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
177
|
+
return R * c;
|
|
178
|
+
}
|
|
179
|
+
toRad(deg) {
|
|
180
|
+
return deg * (Math.PI / 180);
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Consolidate a duty's tracking data in a single transaction:
|
|
184
|
+
* reads raw points, computes stats, inserts track record,
|
|
185
|
+
* deletes granular points, and marks the duty as consolidated.
|
|
186
|
+
* Returns null if there were no tracking points.
|
|
187
|
+
*/
|
|
188
|
+
consolidateFromTracking(dutyId) {
|
|
189
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
190
|
+
const knex = this.knex;
|
|
191
|
+
return knex.transaction((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
192
|
+
// Read granular points
|
|
193
|
+
const rawPoints = yield trx("driver_tracking")
|
|
194
|
+
.where("duty_id", dutyId)
|
|
195
|
+
.orderBy("recorded_at", "asc");
|
|
196
|
+
// Convert to ITrackPoint[]
|
|
197
|
+
const trackPoints = rawPoints.map((p) => ({
|
|
198
|
+
lat: Number(p.latitude),
|
|
199
|
+
lng: Number(p.longitude),
|
|
200
|
+
altitude: p.altitude ? Number(p.altitude) : null,
|
|
201
|
+
speed: p.speed ? Number(p.speed) : null,
|
|
202
|
+
heading: p.heading ? Number(p.heading) : null,
|
|
203
|
+
accuracy: p.accuracy ? Number(p.accuracy) : null,
|
|
204
|
+
recorded_at: typeof p.recorded_at === "string"
|
|
205
|
+
? p.recorded_at
|
|
206
|
+
: p.recorded_at.toISOString(),
|
|
207
|
+
}));
|
|
208
|
+
let dutyTrack = null;
|
|
209
|
+
if (trackPoints.length > 0) {
|
|
210
|
+
const stats = this.computeStatistics(trackPoints);
|
|
211
|
+
const [created] = yield trx("duty_track")
|
|
212
|
+
.insert({
|
|
213
|
+
duty_id: dutyId,
|
|
214
|
+
track_data: JSON.stringify(trackPoints),
|
|
215
|
+
max_speed: stats.max_speed,
|
|
216
|
+
max_altitude: stats.max_altitude,
|
|
217
|
+
total_distance: stats.total_distance,
|
|
218
|
+
total_points: stats.total_points,
|
|
219
|
+
start_coords: stats.start_coords
|
|
220
|
+
? JSON.stringify(stats.start_coords)
|
|
221
|
+
: null,
|
|
222
|
+
end_coords: stats.end_coords
|
|
223
|
+
? JSON.stringify(stats.end_coords)
|
|
224
|
+
: null,
|
|
225
|
+
duration_seconds: stats.duration_seconds,
|
|
226
|
+
})
|
|
227
|
+
.returning("*");
|
|
228
|
+
dutyTrack = this.parseJson(created);
|
|
229
|
+
// Delete granular points
|
|
230
|
+
yield trx("driver_tracking").where("duty_id", dutyId).delete();
|
|
231
|
+
}
|
|
232
|
+
// Update duty tracking status
|
|
233
|
+
yield trx("duties").where("id", dutyId).update({
|
|
234
|
+
tracking_status: "consolidated",
|
|
235
|
+
updated_at: new Date(),
|
|
236
|
+
});
|
|
237
|
+
return dutyTrack;
|
|
238
|
+
}));
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Parse JSONB fields from database result
|
|
243
|
+
*/
|
|
244
|
+
parseJson(row) {
|
|
245
|
+
return Object.assign(Object.assign({}, row), { track_data: typeof row.track_data === "string"
|
|
246
|
+
? JSON.parse(row.track_data)
|
|
247
|
+
: row.track_data, start_coords: row.start_coords
|
|
248
|
+
? typeof row.start_coords === "string"
|
|
249
|
+
? JSON.parse(row.start_coords)
|
|
250
|
+
: row.start_coords
|
|
251
|
+
: null, end_coords: row.end_coords
|
|
252
|
+
? typeof row.end_coords === "string"
|
|
253
|
+
? JSON.parse(row.end_coords)
|
|
254
|
+
: row.end_coords
|
|
255
|
+
: null, max_speed: row.max_speed !== null ? Number(row.max_speed) : null, max_altitude: row.max_altitude !== null ? Number(row.max_altitude) : null, total_distance: row.total_distance !== null ? Number(row.total_distance) : null });
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
exports.DutyTrackDAO = DutyTrackDAO;
|
|
259
|
+
//# sourceMappingURL=duty-track.dao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"duty-track.dao.js","sourceRoot":"","sources":["../../../src/dao/duty-track/duty-track.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0EAA+C;AAU/C,MAAa,YAAY;IAGvB,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;;OAEG;IACG,MAAM,CAAC,IAAsB;;YACjC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;iBAC5C,MAAM,CAAC;gBACN,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;oBACnC,CAAC,CAAC,IAAI;gBACR,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;gBACpE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aACxC,CAAC;iBACD,SAAS,CAAC,GAAG,CAAC,CAAC;YAElB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;KAAA;IAED;;OAEG;IACG,WAAW,CAAC,MAAc;;YAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;iBACzC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;iBACxB,KAAK,EAAE,CAAC;YAEX,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;KAAA;IAED;;OAEG;IACG,SAAS,CAAC,IAAY;;YAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;YAEzE,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;KAAA;IAED;;OAEG;IACG,aAAa,CAAC,MAAc;;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;iBACzC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;iBACxB,KAAK,CAAC,aAAa,CAAC;iBACpB,KAAK,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,KAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;KAAA;IAED;;OAEG;IACG,cAAc,CAAC,MAAc;;YACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;iBAC1C,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;iBACxB,MAAM,EAAE,CAAC;YACZ,OAAO,OAAO,GAAG,CAAC,CAAC;QACrB,CAAC;KAAA;IAED;;;OAGG;IACG,WAAW,CACf,MAAc,EACd,MAAqB;;YAErB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAE7C,OAAO,IAAI,CAAC,MAAM,iBAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,IACf,KAAK,EACR,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAqB;QACrC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,CAAC;gBACf,YAAY,EAAE,IAAI;gBAClB,UAAU,EAAE,IAAI;gBAChB,gBAAgB,EAAE,IAAI;aACvB,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAExB,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,KAAK,GAAG,QAAQ,EAAE,CAAC;oBAChD,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC5B,IAAI,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,GAAG,WAAW,EAAE,CAAC;oBACzD,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC/B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChC,aAAa,IAAI,IAAI,CAAC,iBAAiB,CACrC,SAAS,CAAC,GAAG,EACb,SAAS,CAAC,GAAG,EACb,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,GAAG,CACV,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG;YAChB,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG;YAClC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG;SACnC,CAAC;QAEF,IAAI,eAAe,GAAkB,IAAI,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,IAAI,CACvB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,CACtC,CAAC,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACL,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,WAAW;YACzB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,GAAG;YACrD,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,SAAS;YACrB,gBAAgB,EAAE,eAAe;SAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,iBAAiB,CACvB,IAAY,EACZ,IAAY,EACZ,IAAY,EACZ,IAAY;QAEZ,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,GACL,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,GAAW;QACvB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACG,uBAAuB,CAAC,MAAc;;YAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,OAAO,IAAI,CAAC,WAAW,CAAC,CAAO,GAAG,EAAE,EAAE;gBACpC,uBAAuB;gBACvB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC;qBAC3C,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC;qBACxB,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBAEjC,2BAA2B;gBAC3B,MAAM,WAAW,GAAkB,SAAS,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;oBAC5D,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACvB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;oBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;oBAChD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;oBACvC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;oBAC7C,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;oBAChD,WAAW,EACT,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;wBAC/B,CAAC,CAAC,CAAC,CAAC,WAAW;wBACf,CAAC,CAAE,CAAC,CAAC,WAAoB,CAAC,WAAW,EAAE;iBAC5C,CAAC,CAAC,CAAC;gBAEJ,IAAI,SAAS,GAAsB,IAAI,CAAC;gBAExC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;oBAElD,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC;yBACtC,MAAM,CAAC;wBACN,OAAO,EAAE,MAAM;wBACf,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;wBACvC,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;wBAChC,cAAc,EAAE,KAAK,CAAC,cAAc;wBACpC,YAAY,EAAE,KAAK,CAAC,YAAY;wBAChC,YAAY,EAAE,KAAK,CAAC,YAAY;4BAC9B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC;4BACpC,CAAC,CAAC,IAAI;wBACR,UAAU,EAAE,KAAK,CAAC,UAAU;4BAC1B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;4BAClC,CAAC,CAAC,IAAI;wBACR,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;qBACzC,CAAC;yBACD,SAAS,CAAC,GAAG,CAAC,CAAC;oBAElB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAEpC,yBAAyB;oBACzB,MAAM,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBACjE,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;oBAC7C,eAAe,EAAE,cAAc;oBAC/B,UAAU,EAAE,IAAI,IAAI,EAAE;iBACvB,CAAC,CAAC;gBAEH,OAAO,SAAS,CAAC;YACnB,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;OAEG;IACK,SAAS,CAAC,GAAQ;QACxB,uCACK,GAAG,KACN,UAAU,EACR,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;gBAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;gBAC5B,CAAC,CAAC,GAAG,CAAC,UAAU,EACpB,YAAY,EAAE,GAAG,CAAC,YAAY;gBAC5B,CAAC,CAAC,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;oBACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;oBAC9B,CAAC,CAAC,GAAG,CAAC,YAAY;gBACpB,CAAC,CAAC,IAAI,EACR,UAAU,EAAE,GAAG,CAAC,UAAU;gBACxB,CAAC,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;oBAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;oBAC5B,CAAC,CAAC,GAAG,CAAC,UAAU;gBAClB,CAAC,CAAC,IAAI,EACR,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAChE,YAAY,EACV,GAAG,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAC7D,cAAc,EACZ,GAAG,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,IACjE;IACJ,CAAC;CACF;AAnSD,oCAmSC"}
|
|
@@ -58,7 +58,9 @@ class EventDAO {
|
|
|
58
58
|
*/
|
|
59
59
|
getById(id_1) {
|
|
60
60
|
return __awaiter(this, arguments, void 0, function* (id, includeInactive = false) {
|
|
61
|
-
const query = this.knex("events")
|
|
61
|
+
const query = this.knex("events")
|
|
62
|
+
.select("*")
|
|
63
|
+
.where("id", id);
|
|
62
64
|
if (!includeInactive) {
|
|
63
65
|
query.where("is_active", true);
|
|
64
66
|
}
|
|
@@ -71,7 +73,9 @@ class EventDAO {
|
|
|
71
73
|
*/
|
|
72
74
|
getByUuid(uuid_1) {
|
|
73
75
|
return __awaiter(this, arguments, void 0, function* (uuid, includeInactive = false) {
|
|
74
|
-
const query = this.knex("events")
|
|
76
|
+
const query = this.knex("events")
|
|
77
|
+
.select("*")
|
|
78
|
+
.where("uuid", uuid);
|
|
75
79
|
if (!includeInactive) {
|
|
76
80
|
query.where("is_active", true);
|
|
77
81
|
}
|
|
@@ -84,7 +88,9 @@ class EventDAO {
|
|
|
84
88
|
*/
|
|
85
89
|
getByName(name_1) {
|
|
86
90
|
return __awaiter(this, arguments, void 0, function* (name, includeInactive = false) {
|
|
87
|
-
const query = this.knex("events")
|
|
91
|
+
const query = this.knex("events")
|
|
92
|
+
.select("*")
|
|
93
|
+
.where("name", name);
|
|
88
94
|
if (!includeInactive) {
|
|
89
95
|
query.where("is_active", true);
|
|
90
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.dao.js","sourceRoot":"","sources":["../../../src/dao/event/event.dao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,0EAA+C;AAQ/C,MAAa,QAAQ;IAGnB,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;;OAEG;IACG,MAAM;6DACV,OAAe,CAAC,EAChB,QAAgB,EAAE;YAElB,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;YAElC,qBAAqB;YACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACnC,MAAM,CAAC,GAAG,CAAC;iBACX,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC;iBACxB,KAAK,CAAC,KAAK,CAAC;iBACZ,MAAM,CAAC,MAAM,CAAC;iBACd,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAEjC,kBAAkB;YAClB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC/C,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC;iBACxB,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,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;YAC1B,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;gBACL,UAAU;gBACV,UAAU;aACX,CAAC;QACJ,CAAC;KAAA;IAED;;OAEG;IACG,OAAO;6DAAC,EAAU,EAAE,eAAe,GAAG,KAAK;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"event.dao.js","sourceRoot":"","sources":["../../../src/dao/event/event.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,10 @@ export declare class RouteDAO implements IBaseDAO<IRoute> {
|
|
|
19
19
|
* Get route by UUID with joined event data
|
|
20
20
|
*/
|
|
21
21
|
getByUuid(uuid: string): Promise<IRoute | null>;
|
|
22
|
+
/**
|
|
23
|
+
* Get route by code within an event (case-insensitive)
|
|
24
|
+
*/
|
|
25
|
+
getByCodeAndEventId(code: string, eventId: number): Promise<IRoute | null>;
|
|
22
26
|
/**
|
|
23
27
|
* Create a new route
|
|
24
28
|
*/
|
|
@@ -96,6 +96,21 @@ class RouteDAO {
|
|
|
96
96
|
return result ? this.parseRouteJson(result) : null;
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Get route by code within an event (case-insensitive)
|
|
101
|
+
*/
|
|
102
|
+
getByCodeAndEventId(code, eventId) {
|
|
103
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
+
const result = yield this.knex("routes as r")
|
|
105
|
+
.leftJoin("events as e", "r.event_id", "e.id")
|
|
106
|
+
.select("r.*", this.knex.raw("to_jsonb(e.*) as event"))
|
|
107
|
+
.whereRaw("LOWER(r.code) = LOWER(?)", [code])
|
|
108
|
+
.where("r.event_id", eventId)
|
|
109
|
+
.where("r.is_active", true)
|
|
110
|
+
.first();
|
|
111
|
+
return result ? this.parseRouteJson(result) : null;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
99
114
|
/**
|
|
100
115
|
* Create a new route
|
|
101
116
|
*/
|
|
@@ -112,6 +127,7 @@ class RouteDAO {
|
|
|
112
127
|
distance: data.distance,
|
|
113
128
|
estimated_duration: data.estimated_duration,
|
|
114
129
|
event_id: data.event_id,
|
|
130
|
+
code: data.code || null,
|
|
115
131
|
is_active: data.is_active !== undefined ? data.is_active : true,
|
|
116
132
|
})
|
|
117
133
|
.returning("*");
|
|
@@ -143,6 +159,8 @@ class RouteDAO {
|
|
|
143
159
|
updateData.event_id = data.event_id;
|
|
144
160
|
if (data.is_active !== undefined)
|
|
145
161
|
updateData.is_active = data.is_active;
|
|
162
|
+
if (data.code !== undefined)
|
|
163
|
+
updateData.code = data.code;
|
|
146
164
|
updateData.updated_at = new Date();
|
|
147
165
|
const [result] = yield this.knex("routes")
|
|
148
166
|
.where("id", id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route.dao.js","sourceRoot":"","sources":["../../../src/dao/route/route.dao.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"route.dao.js","sourceRoot":"","sources":["../../../src/dao/route/route.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ISystemSetting, ISystemSettingUpdate } from "../../interfaces/system-setting/system-setting.interfaces";
|
|
2
|
+
export declare class SystemSettingDAO {
|
|
3
|
+
private _knex?;
|
|
4
|
+
private get knex();
|
|
5
|
+
getAll(): Promise<ISystemSetting[]>;
|
|
6
|
+
getByKey(key: string): Promise<ISystemSetting | null>;
|
|
7
|
+
getByUuid(uuid: string): Promise<ISystemSetting | null>;
|
|
8
|
+
getByCategory(category: string): Promise<ISystemSetting[]>;
|
|
9
|
+
update(id: number, data: ISystemSettingUpdate): Promise<ISystemSetting | null>;
|
|
10
|
+
bulkUpdate(updates: {
|
|
11
|
+
key: string;
|
|
12
|
+
value: string;
|
|
13
|
+
}[]): Promise<ISystemSetting[]>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SystemSettingDAO = void 0;
|
|
16
|
+
const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
|
|
17
|
+
class SystemSettingDAO {
|
|
18
|
+
get knex() {
|
|
19
|
+
if (!this._knex) {
|
|
20
|
+
this._knex = KnexConnection_1.default.getConnection();
|
|
21
|
+
}
|
|
22
|
+
return this._knex;
|
|
23
|
+
}
|
|
24
|
+
getAll() {
|
|
25
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
return this.knex("system_settings")
|
|
27
|
+
.select("*")
|
|
28
|
+
.where("is_active", true)
|
|
29
|
+
.orderBy("category")
|
|
30
|
+
.orderBy("key");
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
getByKey(key) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
const result = yield this.knex("system_settings")
|
|
36
|
+
.select("*")
|
|
37
|
+
.where("key", key)
|
|
38
|
+
.where("is_active", true)
|
|
39
|
+
.first();
|
|
40
|
+
return result || null;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
getByUuid(uuid) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const result = yield this.knex("system_settings")
|
|
46
|
+
.select("*")
|
|
47
|
+
.where("uuid", uuid)
|
|
48
|
+
.where("is_active", true)
|
|
49
|
+
.first();
|
|
50
|
+
return result || null;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
getByCategory(category) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
return this.knex("system_settings")
|
|
56
|
+
.select("*")
|
|
57
|
+
.where("category", category)
|
|
58
|
+
.where("is_active", true)
|
|
59
|
+
.orderBy("key");
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
update(id, data) {
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
const updateData = {};
|
|
65
|
+
if (data.value !== undefined)
|
|
66
|
+
updateData.value = data.value;
|
|
67
|
+
if (data.label !== undefined)
|
|
68
|
+
updateData.label = data.label;
|
|
69
|
+
if (data.description !== undefined)
|
|
70
|
+
updateData.description = data.description;
|
|
71
|
+
updateData.updated_at = new Date();
|
|
72
|
+
const [result] = yield this.knex("system_settings")
|
|
73
|
+
.where("id", id)
|
|
74
|
+
.update(updateData)
|
|
75
|
+
.returning("*");
|
|
76
|
+
return result || null;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
bulkUpdate(updates) {
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
return this.knex.transaction((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
const results = [];
|
|
83
|
+
for (const { key, value } of updates) {
|
|
84
|
+
const [result] = yield trx("system_settings")
|
|
85
|
+
.where("key", key)
|
|
86
|
+
.where("is_active", true)
|
|
87
|
+
.update({ value, updated_at: new Date() })
|
|
88
|
+
.returning("*");
|
|
89
|
+
if (result) {
|
|
90
|
+
results.push(result);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return results;
|
|
94
|
+
}));
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.SystemSettingDAO = SystemSettingDAO;
|
|
99
|
+
//# sourceMappingURL=system-setting.dao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-setting.dao.js","sourceRoot":"","sources":["../../../src/dao/system-setting/system-setting.dao.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,13 @@ export declare class TripTrackDAO {
|
|
|
42
42
|
* Get consolidated trip history with filters and pagination
|
|
43
43
|
*/
|
|
44
44
|
getConsolidatedHistory(filters: IConsolidatedTripFilters, page: number, limit: number): Promise<IDataPaginator<IConsolidatedTripHistory>>;
|
|
45
|
+
/**
|
|
46
|
+
* Consolidate a trip's tracking data in a single transaction:
|
|
47
|
+
* reads raw points, computes stats, inserts track record,
|
|
48
|
+
* deletes granular points, and marks the trip as consolidated.
|
|
49
|
+
* Returns null if there were no tracking points.
|
|
50
|
+
*/
|
|
51
|
+
consolidateFromTracking(tripId: number): Promise<ITripTrack | null>;
|
|
45
52
|
/**
|
|
46
53
|
* Parse JSONB fields from database result
|
|
47
54
|
*/
|
|
@@ -34,9 +34,7 @@ class TripTrackDAO {
|
|
|
34
34
|
max_altitude: data.max_altitude,
|
|
35
35
|
total_distance: data.total_distance,
|
|
36
36
|
total_points: data.total_points,
|
|
37
|
-
start_coords: data.start_coords
|
|
38
|
-
? JSON.stringify(data.start_coords)
|
|
39
|
-
: null,
|
|
37
|
+
start_coords: data.start_coords ? JSON.stringify(data.start_coords) : null,
|
|
40
38
|
end_coords: data.end_coords ? JSON.stringify(data.end_coords) : null,
|
|
41
39
|
duration_seconds: data.duration_seconds,
|
|
42
40
|
})
|
|
@@ -62,7 +60,9 @@ class TripTrackDAO {
|
|
|
62
60
|
*/
|
|
63
61
|
getByUuid(uuid) {
|
|
64
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
const result = yield this.knex("trip_track")
|
|
63
|
+
const result = yield this.knex("trip_track")
|
|
64
|
+
.where("uuid", uuid)
|
|
65
|
+
.first();
|
|
66
66
|
if (!result)
|
|
67
67
|
return null;
|
|
68
68
|
return this.parseJson(result);
|
|
@@ -231,6 +231,65 @@ class TripTrackDAO {
|
|
|
231
231
|
};
|
|
232
232
|
});
|
|
233
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Consolidate a trip's tracking data in a single transaction:
|
|
236
|
+
* reads raw points, computes stats, inserts track record,
|
|
237
|
+
* deletes granular points, and marks the trip as consolidated.
|
|
238
|
+
* Returns null if there were no tracking points.
|
|
239
|
+
*/
|
|
240
|
+
consolidateFromTracking(tripId) {
|
|
241
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
242
|
+
const knex = this.knex;
|
|
243
|
+
return knex.transaction((trx) => __awaiter(this, void 0, void 0, function* () {
|
|
244
|
+
// Read granular points
|
|
245
|
+
const rawPoints = yield trx("driver_tracking")
|
|
246
|
+
.where("trip_id", tripId)
|
|
247
|
+
.orderBy("recorded_at", "asc");
|
|
248
|
+
// Convert to ITrackPoint[]
|
|
249
|
+
const trackPoints = rawPoints.map((p) => ({
|
|
250
|
+
lat: Number(p.latitude),
|
|
251
|
+
lng: Number(p.longitude),
|
|
252
|
+
altitude: p.altitude ? Number(p.altitude) : null,
|
|
253
|
+
speed: p.speed ? Number(p.speed) : null,
|
|
254
|
+
heading: p.heading ? Number(p.heading) : null,
|
|
255
|
+
accuracy: p.accuracy ? Number(p.accuracy) : null,
|
|
256
|
+
recorded_at: typeof p.recorded_at === "string"
|
|
257
|
+
? p.recorded_at
|
|
258
|
+
: p.recorded_at.toISOString(),
|
|
259
|
+
}));
|
|
260
|
+
let tripTrack = null;
|
|
261
|
+
if (trackPoints.length > 0) {
|
|
262
|
+
const stats = this.computeStatistics(trackPoints);
|
|
263
|
+
const [created] = yield trx("trip_track")
|
|
264
|
+
.insert({
|
|
265
|
+
trip_id: tripId,
|
|
266
|
+
track_data: JSON.stringify(trackPoints),
|
|
267
|
+
max_speed: stats.max_speed,
|
|
268
|
+
max_altitude: stats.max_altitude,
|
|
269
|
+
total_distance: stats.total_distance,
|
|
270
|
+
total_points: stats.total_points,
|
|
271
|
+
start_coords: stats.start_coords
|
|
272
|
+
? JSON.stringify(stats.start_coords)
|
|
273
|
+
: null,
|
|
274
|
+
end_coords: stats.end_coords
|
|
275
|
+
? JSON.stringify(stats.end_coords)
|
|
276
|
+
: null,
|
|
277
|
+
duration_seconds: stats.duration_seconds,
|
|
278
|
+
})
|
|
279
|
+
.returning("*");
|
|
280
|
+
tripTrack = this.parseJson(created);
|
|
281
|
+
// Delete granular points
|
|
282
|
+
yield trx("driver_tracking").where("trip_id", tripId).delete();
|
|
283
|
+
}
|
|
284
|
+
// Update trip tracking status
|
|
285
|
+
yield trx("trips").where("id", tripId).update({
|
|
286
|
+
tracking_status: "consolidated",
|
|
287
|
+
updated_at: new Date(),
|
|
288
|
+
});
|
|
289
|
+
return tripTrack;
|
|
290
|
+
}));
|
|
291
|
+
});
|
|
292
|
+
}
|
|
234
293
|
/**
|
|
235
294
|
* Parse JSONB fields from database result
|
|
236
295
|
*/
|