@tmscloud/tbt-knex 0.0.1 → 0.0.3
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/.github/workflows/build-and-push.yml +118 -0
- package/Dockerfile +36 -0
- package/build-image.sh +16 -0
- package/dist/dao/driver-tracking/driver-tracking.dao.d.ts +17 -12
- package/dist/dao/driver-tracking/driver-tracking.dao.js +107 -123
- package/dist/dao/driver-tracking/driver-tracking.dao.js.map +1 -1
- package/dist/dao/event/event.dao.d.ts +38 -0
- package/dist/dao/event/event.dao.js +156 -0
- package/dist/dao/event/event.dao.js.map +1 -0
- package/dist/dao/route/route.dao.d.ts +10 -2
- package/dist/dao/route/route.dao.js +94 -9
- package/dist/dao/route/route.dao.js.map +1 -1
- package/dist/dao/trip/trip.dao.d.ts +5 -0
- package/dist/dao/trip/trip.dao.js +10 -0
- package/dist/dao/trip/trip.dao.js.map +1 -1
- package/dist/dao/trip-track/trip-track.dao.d.ts +49 -0
- package/dist/dao/trip-track/trip-track.dao.js +252 -0
- package/dist/dao/trip-track/trip-track.dao.js.map +1 -0
- package/dist/index.d.ts +12 -10
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/interfaces/driver-tracking/driver-tracking.interfaces.d.ts +23 -44
- package/dist/interfaces/event/event.interfaces.d.ts +22 -0
- package/dist/interfaces/{gps-location/gps-location.interfaces.js → event/event.interfaces.js} +1 -1
- package/dist/interfaces/event/event.interfaces.js.map +1 -0
- package/dist/interfaces/route/route.interfaces.d.ts +3 -0
- package/dist/interfaces/trip/trip.interfaces.d.ts +2 -0
- package/dist/interfaces/trip-track/trip-track.interfaces.d.ts +82 -0
- package/dist/interfaces/trip-track/trip-track.interfaces.js +3 -0
- package/dist/interfaces/trip-track/trip-track.interfaces.js.map +1 -0
- package/package.json +1 -1
- package/dist/dao/gps-location/gps-location.dao.d.ts +0 -76
- package/dist/dao/gps-location/gps-location.dao.js +0 -364
- package/dist/dao/gps-location/gps-location.dao.js.map +0 -1
- package/dist/interfaces/gps-location/gps-location.interfaces.d.ts +0 -30
- package/dist/interfaces/gps-location/gps-location.interfaces.js.map +0 -1
|
@@ -0,0 +1,252 @@
|
|
|
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.TripTrackDAO = void 0;
|
|
16
|
+
const KnexConnection_1 = __importDefault(require("../../KnexConnection"));
|
|
17
|
+
class TripTrackDAO {
|
|
18
|
+
get knex() {
|
|
19
|
+
if (!this._knex) {
|
|
20
|
+
this._knex = KnexConnection_1.default.getConnection();
|
|
21
|
+
}
|
|
22
|
+
return this._knex;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create consolidated trip track
|
|
26
|
+
*/
|
|
27
|
+
create(data) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const [created] = yield this.knex("trip_track")
|
|
30
|
+
.insert({
|
|
31
|
+
trip_id: data.trip_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 trip ID
|
|
49
|
+
*/
|
|
50
|
+
getByTripId(tripId) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const result = yield this.knex("trip_track")
|
|
53
|
+
.where("trip_id", tripId)
|
|
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("trip_track").where("uuid", uuid).first();
|
|
66
|
+
if (!result)
|
|
67
|
+
return null;
|
|
68
|
+
return this.parseJson(result);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Check if a trip already has a consolidated track
|
|
73
|
+
*/
|
|
74
|
+
existsForTrip(tripId) {
|
|
75
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
const result = yield this.knex("trip_track")
|
|
77
|
+
.where("trip_id", tripId)
|
|
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 trip ID
|
|
85
|
+
*/
|
|
86
|
+
deleteByTripId(tripId) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const deleted = yield this.knex("trip_track")
|
|
89
|
+
.where("trip_id", tripId)
|
|
90
|
+
.delete();
|
|
91
|
+
return deleted > 0;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Consolidate track from granular driver_tracking points.
|
|
96
|
+
* Returns null if zero points provided (no trip_track record created).
|
|
97
|
+
*/
|
|
98
|
+
consolidate(tripId, 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({ trip_id: tripId, 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
|
+
// Duration from first to last track point
|
|
148
|
+
let durationSeconds = null;
|
|
149
|
+
const firstTime = new Date(points[0].recorded_at).getTime();
|
|
150
|
+
const lastTime = new Date(points[points.length - 1].recorded_at).getTime();
|
|
151
|
+
if (!isNaN(firstTime) && !isNaN(lastTime)) {
|
|
152
|
+
durationSeconds = Math.round((lastTime - firstTime) / 1000);
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
max_speed: maxSpeed,
|
|
156
|
+
max_altitude: maxAltitude,
|
|
157
|
+
total_distance: Math.round(totalDistance * 100) / 100,
|
|
158
|
+
total_points: points.length,
|
|
159
|
+
start_coords: startCoords,
|
|
160
|
+
end_coords: endCoords,
|
|
161
|
+
duration_seconds: durationSeconds,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Calculate distance between two coordinates using Haversine formula.
|
|
166
|
+
* Returns distance in kilometers.
|
|
167
|
+
*/
|
|
168
|
+
calculateDistance(lat1, lon1, lat2, lon2) {
|
|
169
|
+
const R = 6371; // Earth's radius in kilometers
|
|
170
|
+
const dLat = this.toRad(lat2 - lat1);
|
|
171
|
+
const dLon = this.toRad(lon2 - lon1);
|
|
172
|
+
const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
|
|
173
|
+
Math.cos(this.toRad(lat1)) *
|
|
174
|
+
Math.cos(this.toRad(lat2)) *
|
|
175
|
+
Math.sin(dLon / 2) *
|
|
176
|
+
Math.sin(dLon / 2);
|
|
177
|
+
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
178
|
+
return R * c;
|
|
179
|
+
}
|
|
180
|
+
toRad(deg) {
|
|
181
|
+
return deg * (Math.PI / 180);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Get consolidated trip history with filters and pagination
|
|
185
|
+
*/
|
|
186
|
+
getConsolidatedHistory(filters, page, limit) {
|
|
187
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
188
|
+
const offset = (page - 1) * limit;
|
|
189
|
+
const query = this.knex("trip_track as tt")
|
|
190
|
+
.join("trips as t", "tt.trip_id", "t.id")
|
|
191
|
+
.join("users as u", "t.user_id", "u.id")
|
|
192
|
+
.leftJoin("route_assignments as ra", "t.assignment_id", "ra.id")
|
|
193
|
+
.leftJoin("routes as r", "ra.route_id", "r.id")
|
|
194
|
+
.where("t.tracking_status", "consolidated")
|
|
195
|
+
.select("t.uuid as trip_uuid", this.knex.raw(`jsonb_build_object('uuid', u.uuid, 'email', u.email, 'username', u.username, 'first_name', u.first_name, 'last_name', u.last_name) as "user"`), "ra.uuid as assignment_uuid", "r.uuid as route_uuid", "r.name as route_name", "t.actual_start as started_at", "t.actual_end as ended_at", "tt.total_points", "tt.total_distance", "tt.duration_seconds", "tt.max_speed");
|
|
196
|
+
if (filters.user_id) {
|
|
197
|
+
query.where("t.user_id", filters.user_id);
|
|
198
|
+
}
|
|
199
|
+
if (filters.from_date) {
|
|
200
|
+
query.where("t.actual_start", ">=", filters.from_date);
|
|
201
|
+
}
|
|
202
|
+
if (filters.to_date) {
|
|
203
|
+
query.where("t.actual_start", "<=", filters.to_date + " 23:59:59");
|
|
204
|
+
}
|
|
205
|
+
if (filters.trip_uuid) {
|
|
206
|
+
query.whereRaw("t.uuid::text ilike ?", [`%${filters.trip_uuid}%`]);
|
|
207
|
+
}
|
|
208
|
+
const countResult = yield query
|
|
209
|
+
.clone()
|
|
210
|
+
.clearSelect()
|
|
211
|
+
.clearOrder()
|
|
212
|
+
.count("tt.id as count")
|
|
213
|
+
.first();
|
|
214
|
+
const totalCount = Number((countResult === null || countResult === void 0 ? void 0 : countResult.count) || 0);
|
|
215
|
+
const totalPages = Math.ceil(totalCount / limit);
|
|
216
|
+
const data = yield query
|
|
217
|
+
.clone()
|
|
218
|
+
.orderBy("t.actual_start", "desc")
|
|
219
|
+
.limit(limit)
|
|
220
|
+
.offset(offset);
|
|
221
|
+
// Parse numeric fields
|
|
222
|
+
const parsed = data.map((row) => (Object.assign(Object.assign({}, row), { user: typeof row.user === "string" ? JSON.parse(row.user) : row.user, total_points: Number(row.total_points), total_distance: row.total_distance !== null ? Number(row.total_distance) : null, duration_seconds: row.duration_seconds !== null ? Number(row.duration_seconds) : null, max_speed: row.max_speed !== null ? Number(row.max_speed) : null })));
|
|
223
|
+
return {
|
|
224
|
+
success: true,
|
|
225
|
+
data: parsed,
|
|
226
|
+
page,
|
|
227
|
+
limit,
|
|
228
|
+
count: parsed.length,
|
|
229
|
+
totalCount,
|
|
230
|
+
totalPages,
|
|
231
|
+
};
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Parse JSONB fields from database result
|
|
236
|
+
*/
|
|
237
|
+
parseJson(row) {
|
|
238
|
+
return Object.assign(Object.assign({}, row), { track_data: typeof row.track_data === "string"
|
|
239
|
+
? JSON.parse(row.track_data)
|
|
240
|
+
: row.track_data, start_coords: row.start_coords
|
|
241
|
+
? typeof row.start_coords === "string"
|
|
242
|
+
? JSON.parse(row.start_coords)
|
|
243
|
+
: row.start_coords
|
|
244
|
+
: null, end_coords: row.end_coords
|
|
245
|
+
? typeof row.end_coords === "string"
|
|
246
|
+
? JSON.parse(row.end_coords)
|
|
247
|
+
: row.end_coords
|
|
248
|
+
: 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 });
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
exports.TripTrackDAO = TripTrackDAO;
|
|
252
|
+
//# sourceMappingURL=trip-track.dao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trip-track.dao.js","sourceRoot":"","sources":["../../../src/dao/trip-track/trip-track.dao.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { DriverTrackingDAO } from "./dao/driver-tracking/driver-tracking.dao";
|
|
2
|
+
export { EventDAO } from "./dao/event/event.dao";
|
|
3
3
|
export { RoleDAO } from "./dao/role/role.dao";
|
|
4
|
-
export {
|
|
4
|
+
export { RouteDAO } from "./dao/route/route.dao";
|
|
5
5
|
export { RouteAssignmentDAO } from "./dao/route-assignment/route-assignment.dao";
|
|
6
|
+
export { SundaysPackageVersionDAO } from "./dao/sundays-package-version/sundays-package-version.dao";
|
|
6
7
|
export { TripDAO } from "./dao/trip/trip.dao";
|
|
7
|
-
export {
|
|
8
|
-
export {
|
|
8
|
+
export { TripTrackDAO } from "./dao/trip-track/trip-track.dao";
|
|
9
|
+
export { UserDAO } from "./dao/user/user.dao";
|
|
9
10
|
export { IDataPaginator } from "./d.types";
|
|
10
|
-
export {
|
|
11
|
-
export {
|
|
11
|
+
export { IDriverTracking, IDriverTrackingBatchCreate, ITrackingPointInput, ITrackingMetadata, IActiveDriver, ITrackingSession, ITrackingFilters, } from "./interfaces/driver-tracking/driver-tracking.interfaces";
|
|
12
|
+
export { IEvent, IEventCreate, IEventUpdate, } from "./interfaces/event/event.interfaces";
|
|
12
13
|
export { IRole } from "./interfaces/role/role.interfaces";
|
|
13
|
-
export {
|
|
14
|
+
export { IRoute, IRouteInstruction } from "./interfaces/route/route.interfaces";
|
|
14
15
|
export { IRouteAssignment } from "./interfaces/route-assignment/route-assignment.interfaces";
|
|
16
|
+
export { ISundaysPackageVersion } from "./interfaces/sundays-package-version/sundays-package-version.interfaces";
|
|
15
17
|
export { ITrip, ITripStop, ITripWithStops, } from "./interfaces/trip/trip.interfaces";
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
+
export { ITripTrack, ITripTrackCreate, ITrackPoint, ITrackStatistics, TrackingStatus, IConsolidatedTripHistory, IConsolidatedTripFilters, } from "./interfaces/trip-track/trip-track.interfaces";
|
|
19
|
+
export { IUser, IUserSafe, IRefreshToken, } from "./interfaces/user/user.interfaces";
|
|
18
20
|
import KnexManager from "./KnexConnection";
|
|
19
21
|
export { KnexManager };
|
package/dist/index.js
CHANGED
|
@@ -3,24 +3,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.KnexManager = exports.
|
|
6
|
+
exports.KnexManager = exports.UserDAO = exports.TripTrackDAO = exports.TripDAO = exports.SundaysPackageVersionDAO = exports.RouteAssignmentDAO = exports.RouteDAO = exports.RoleDAO = exports.EventDAO = exports.DriverTrackingDAO = void 0;
|
|
7
7
|
// DAOs
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "
|
|
8
|
+
var driver_tracking_dao_1 = require("./dao/driver-tracking/driver-tracking.dao");
|
|
9
|
+
Object.defineProperty(exports, "DriverTrackingDAO", { enumerable: true, get: function () { return driver_tracking_dao_1.DriverTrackingDAO; } });
|
|
10
|
+
var event_dao_1 = require("./dao/event/event.dao");
|
|
11
|
+
Object.defineProperty(exports, "EventDAO", { enumerable: true, get: function () { return event_dao_1.EventDAO; } });
|
|
12
12
|
var role_dao_1 = require("./dao/role/role.dao");
|
|
13
13
|
Object.defineProperty(exports, "RoleDAO", { enumerable: true, get: function () { return role_dao_1.RoleDAO; } });
|
|
14
|
-
var
|
|
15
|
-
Object.defineProperty(exports, "
|
|
14
|
+
var route_dao_1 = require("./dao/route/route.dao");
|
|
15
|
+
Object.defineProperty(exports, "RouteDAO", { enumerable: true, get: function () { return route_dao_1.RouteDAO; } });
|
|
16
16
|
var route_assignment_dao_1 = require("./dao/route-assignment/route-assignment.dao");
|
|
17
17
|
Object.defineProperty(exports, "RouteAssignmentDAO", { enumerable: true, get: function () { return route_assignment_dao_1.RouteAssignmentDAO; } });
|
|
18
|
+
var sundays_package_version_dao_1 = require("./dao/sundays-package-version/sundays-package-version.dao");
|
|
19
|
+
Object.defineProperty(exports, "SundaysPackageVersionDAO", { enumerable: true, get: function () { return sundays_package_version_dao_1.SundaysPackageVersionDAO; } });
|
|
18
20
|
var trip_dao_1 = require("./dao/trip/trip.dao");
|
|
19
21
|
Object.defineProperty(exports, "TripDAO", { enumerable: true, get: function () { return trip_dao_1.TripDAO; } });
|
|
20
|
-
var
|
|
21
|
-
Object.defineProperty(exports, "
|
|
22
|
-
var
|
|
23
|
-
Object.defineProperty(exports, "
|
|
22
|
+
var trip_track_dao_1 = require("./dao/trip-track/trip-track.dao");
|
|
23
|
+
Object.defineProperty(exports, "TripTrackDAO", { enumerable: true, get: function () { return trip_track_dao_1.TripTrackDAO; } });
|
|
24
|
+
var user_dao_1 = require("./dao/user/user.dao");
|
|
25
|
+
Object.defineProperty(exports, "UserDAO", { enumerable: true, get: function () { return user_dao_1.UserDAO; } });
|
|
24
26
|
const KnexConnection_1 = __importDefault(require("./KnexConnection"));
|
|
25
27
|
exports.KnexManager = KnexConnection_1.default;
|
|
26
28
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO;AACP,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO;AACP,iFAA8E;AAArE,wHAAA,iBAAiB,OAAA;AAC1B,mDAAiD;AAAxC,qGAAA,QAAQ,OAAA;AACjB,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,mDAAiD;AAAxC,qGAAA,QAAQ,OAAA;AACjB,oFAAiF;AAAxE,0HAAA,kBAAkB,OAAA;AAC3B,yGAAqG;AAA5F,uIAAA,wBAAwB,OAAA;AACjC,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,kEAA+D;AAAtD,8GAAA,YAAY,OAAA;AACrB,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AA0ChB,sEAA2C;AAClC,sBADF,wBAAW,CACE"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { IUserSafe } from "../user/user.interfaces";
|
|
2
|
-
import { IRouteAssignment } from "../route-assignment/route-assignment.interfaces";
|
|
3
|
-
import { IRoute } from "../route/route.interfaces";
|
|
4
1
|
export interface IDriverTracking {
|
|
5
2
|
id?: number;
|
|
6
3
|
uuid?: string;
|
|
7
4
|
user_id: number;
|
|
5
|
+
trip_id: number;
|
|
8
6
|
assignment_id?: number | null;
|
|
9
7
|
route_id?: number | null;
|
|
10
8
|
session_id: string;
|
|
@@ -19,9 +17,7 @@ export interface IDriverTracking {
|
|
|
19
17
|
metadata?: ITrackingMetadata | null;
|
|
20
18
|
created_at?: Date | string;
|
|
21
19
|
updated_at?: Date | string;
|
|
22
|
-
user?:
|
|
23
|
-
assignment?: IRouteAssignment;
|
|
24
|
-
route?: IRoute;
|
|
20
|
+
user?: any;
|
|
25
21
|
}
|
|
26
22
|
export interface ITrackingMetadata {
|
|
27
23
|
battery_level?: number;
|
|
@@ -31,72 +27,55 @@ export interface ITrackingMetadata {
|
|
|
31
27
|
device_model?: string;
|
|
32
28
|
os_version?: string;
|
|
33
29
|
}
|
|
34
|
-
export interface
|
|
30
|
+
export interface IDriverTrackingBatchCreate {
|
|
35
31
|
user_id: number;
|
|
32
|
+
trip_id: number;
|
|
36
33
|
assignment_id?: number | null;
|
|
37
34
|
route_id?: number | null;
|
|
38
35
|
session_id: string;
|
|
39
|
-
|
|
40
|
-
longitude: number;
|
|
41
|
-
accuracy?: number | null;
|
|
42
|
-
altitude?: number | null;
|
|
43
|
-
speed?: number | null;
|
|
44
|
-
heading?: number | null;
|
|
45
|
-
recorded_at: Date | string;
|
|
46
|
-
is_navigating?: boolean;
|
|
47
|
-
metadata?: ITrackingMetadata | null;
|
|
48
|
-
}
|
|
49
|
-
export interface IDriverTrackingBatchCreate {
|
|
50
|
-
session_id: string;
|
|
51
|
-
assignment_id?: number | null;
|
|
52
|
-
route_id?: number | null;
|
|
53
|
-
points: ITrackingPoint[];
|
|
36
|
+
points: ITrackingPointInput[];
|
|
54
37
|
}
|
|
55
|
-
export interface
|
|
38
|
+
export interface ITrackingPointInput {
|
|
56
39
|
latitude: number;
|
|
57
40
|
longitude: number;
|
|
58
41
|
accuracy?: number | null;
|
|
59
42
|
altitude?: number | null;
|
|
60
43
|
speed?: number | null;
|
|
61
44
|
heading?: number | null;
|
|
62
|
-
recorded_at:
|
|
45
|
+
recorded_at: string;
|
|
63
46
|
metadata?: ITrackingMetadata | null;
|
|
64
47
|
}
|
|
65
48
|
export interface IActiveDriver {
|
|
66
|
-
|
|
67
|
-
user?: IUserSafe;
|
|
49
|
+
user: any;
|
|
68
50
|
session_id: string;
|
|
69
|
-
|
|
70
|
-
|
|
51
|
+
trip_uuid: string;
|
|
52
|
+
assignment_uuid?: string | null;
|
|
53
|
+
route_uuid?: string | null;
|
|
71
54
|
current_location: {
|
|
72
55
|
latitude: number;
|
|
73
56
|
longitude: number;
|
|
74
|
-
heading
|
|
75
|
-
speed
|
|
76
|
-
recorded_at:
|
|
57
|
+
heading: number | null;
|
|
58
|
+
speed: number | null;
|
|
59
|
+
recorded_at: string;
|
|
77
60
|
};
|
|
78
|
-
is_navigating: boolean;
|
|
79
61
|
}
|
|
80
62
|
export interface ITrackingSession {
|
|
81
63
|
session_id: string;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
started_at: Date | string;
|
|
89
|
-
ended_at?: Date | string;
|
|
64
|
+
user: any;
|
|
65
|
+
trip_uuid: string;
|
|
66
|
+
assignment_uuid?: string | null;
|
|
67
|
+
route_uuid?: string | null;
|
|
68
|
+
started_at: string;
|
|
69
|
+
ended_at?: string;
|
|
90
70
|
total_points: number;
|
|
91
|
-
total_distance_km?: number;
|
|
92
|
-
duration_seconds?: number;
|
|
93
71
|
}
|
|
94
72
|
export interface ITrackingFilters {
|
|
95
73
|
user_id?: number;
|
|
74
|
+
trip_id?: number;
|
|
96
75
|
assignment_id?: number;
|
|
97
76
|
route_id?: number;
|
|
98
77
|
session_id?: string;
|
|
99
|
-
from_date?:
|
|
100
|
-
to_date?:
|
|
78
|
+
from_date?: string;
|
|
79
|
+
to_date?: string;
|
|
101
80
|
is_navigating?: boolean;
|
|
102
81
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface IEvent {
|
|
2
|
+
id?: number;
|
|
3
|
+
uuid?: string;
|
|
4
|
+
name: string;
|
|
5
|
+
start_date?: Date | string | null;
|
|
6
|
+
end_date?: Date | string | null;
|
|
7
|
+
is_active?: boolean;
|
|
8
|
+
created_at?: Date | string;
|
|
9
|
+
updated_at?: Date | string;
|
|
10
|
+
}
|
|
11
|
+
export interface IEventCreate {
|
|
12
|
+
name: string;
|
|
13
|
+
start_date?: Date | string | null;
|
|
14
|
+
end_date?: Date | string | null;
|
|
15
|
+
is_active?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface IEventUpdate {
|
|
18
|
+
name?: string;
|
|
19
|
+
start_date?: Date | string | null;
|
|
20
|
+
end_date?: Date | string | null;
|
|
21
|
+
is_active?: boolean;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.interfaces.js","sourceRoot":"","sources":["../../../src/interfaces/event/event.interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { IEvent } from "../event/event.interfaces";
|
|
1
2
|
export interface IRoute {
|
|
2
3
|
id?: number;
|
|
3
4
|
uuid?: string;
|
|
@@ -7,6 +8,8 @@ export interface IRoute {
|
|
|
7
8
|
custom_instructions?: any[];
|
|
8
9
|
distance?: number;
|
|
9
10
|
estimated_duration?: number;
|
|
11
|
+
event_id?: number;
|
|
12
|
+
event?: IEvent;
|
|
10
13
|
is_active?: boolean;
|
|
11
14
|
created_at?: Date;
|
|
12
15
|
updated_at?: Date;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IRoute } from "../route/route.interfaces";
|
|
2
2
|
import { IUser } from "../user/user.interfaces";
|
|
3
3
|
import { IRouteAssignment } from "../route-assignment/route-assignment.interfaces";
|
|
4
|
+
import { TrackingStatus } from "../trip-track/trip-track.interfaces";
|
|
4
5
|
export interface ITrip {
|
|
5
6
|
id?: number;
|
|
6
7
|
uuid?: string;
|
|
@@ -12,6 +13,7 @@ export interface ITrip {
|
|
|
12
13
|
actual_start?: Date | string;
|
|
13
14
|
actual_end?: Date | string;
|
|
14
15
|
status: "pending" | "in_progress" | "completed" | "cancelled";
|
|
16
|
+
tracking_status?: TrackingStatus;
|
|
15
17
|
manifest_data?: any;
|
|
16
18
|
distance_traveled?: number;
|
|
17
19
|
duration_minutes?: number;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export interface ITrackPoint {
|
|
2
|
+
lat: number;
|
|
3
|
+
lng: number;
|
|
4
|
+
altitude: number | null;
|
|
5
|
+
speed: number | null;
|
|
6
|
+
heading: number | null;
|
|
7
|
+
accuracy: number | null;
|
|
8
|
+
recorded_at: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ITrackStatistics {
|
|
11
|
+
max_speed: number | null;
|
|
12
|
+
max_altitude: number | null;
|
|
13
|
+
total_distance: number | null;
|
|
14
|
+
total_points: number;
|
|
15
|
+
start_coords: {
|
|
16
|
+
lat: number;
|
|
17
|
+
lng: number;
|
|
18
|
+
} | null;
|
|
19
|
+
end_coords: {
|
|
20
|
+
lat: number;
|
|
21
|
+
lng: number;
|
|
22
|
+
} | null;
|
|
23
|
+
duration_seconds: number | null;
|
|
24
|
+
}
|
|
25
|
+
export interface ITripTrack {
|
|
26
|
+
id?: number;
|
|
27
|
+
uuid?: string;
|
|
28
|
+
trip_id: number;
|
|
29
|
+
track_data: ITrackPoint[];
|
|
30
|
+
max_speed: number | null;
|
|
31
|
+
max_altitude: number | null;
|
|
32
|
+
total_distance: number | null;
|
|
33
|
+
total_points: number;
|
|
34
|
+
start_coords: {
|
|
35
|
+
lat: number;
|
|
36
|
+
lng: number;
|
|
37
|
+
} | null;
|
|
38
|
+
end_coords: {
|
|
39
|
+
lat: number;
|
|
40
|
+
lng: number;
|
|
41
|
+
} | null;
|
|
42
|
+
duration_seconds: number | null;
|
|
43
|
+
created_at?: string;
|
|
44
|
+
updated_at?: string;
|
|
45
|
+
}
|
|
46
|
+
export interface ITripTrackCreate {
|
|
47
|
+
trip_id: number;
|
|
48
|
+
track_data: ITrackPoint[];
|
|
49
|
+
max_speed: number | null;
|
|
50
|
+
max_altitude: number | null;
|
|
51
|
+
total_distance: number | null;
|
|
52
|
+
total_points: number;
|
|
53
|
+
start_coords: {
|
|
54
|
+
lat: number;
|
|
55
|
+
lng: number;
|
|
56
|
+
} | null;
|
|
57
|
+
end_coords: {
|
|
58
|
+
lat: number;
|
|
59
|
+
lng: number;
|
|
60
|
+
} | null;
|
|
61
|
+
duration_seconds: number | null;
|
|
62
|
+
}
|
|
63
|
+
export type TrackingStatus = "none" | "tracking" | "syncing" | "consolidated";
|
|
64
|
+
export interface IConsolidatedTripHistory {
|
|
65
|
+
trip_uuid: string;
|
|
66
|
+
user: any;
|
|
67
|
+
assignment_uuid: string | null;
|
|
68
|
+
route_uuid: string | null;
|
|
69
|
+
route_name: string | null;
|
|
70
|
+
started_at: string | null;
|
|
71
|
+
ended_at: string | null;
|
|
72
|
+
total_points: number;
|
|
73
|
+
total_distance: number | null;
|
|
74
|
+
duration_seconds: number | null;
|
|
75
|
+
max_speed: number | null;
|
|
76
|
+
}
|
|
77
|
+
export interface IConsolidatedTripFilters {
|
|
78
|
+
user_id?: number;
|
|
79
|
+
from_date?: string;
|
|
80
|
+
to_date?: string;
|
|
81
|
+
trip_uuid?: string;
|
|
82
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trip-track.interfaces.js","sourceRoot":"","sources":["../../../src/interfaces/trip-track/trip-track.interfaces.ts"],"names":[],"mappings":""}
|