@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.
Files changed (36) hide show
  1. package/.github/workflows/build-and-push.yml +118 -0
  2. package/Dockerfile +36 -0
  3. package/build-image.sh +16 -0
  4. package/dist/dao/driver-tracking/driver-tracking.dao.d.ts +17 -12
  5. package/dist/dao/driver-tracking/driver-tracking.dao.js +107 -123
  6. package/dist/dao/driver-tracking/driver-tracking.dao.js.map +1 -1
  7. package/dist/dao/event/event.dao.d.ts +38 -0
  8. package/dist/dao/event/event.dao.js +156 -0
  9. package/dist/dao/event/event.dao.js.map +1 -0
  10. package/dist/dao/route/route.dao.d.ts +10 -2
  11. package/dist/dao/route/route.dao.js +94 -9
  12. package/dist/dao/route/route.dao.js.map +1 -1
  13. package/dist/dao/trip/trip.dao.d.ts +5 -0
  14. package/dist/dao/trip/trip.dao.js +10 -0
  15. package/dist/dao/trip/trip.dao.js.map +1 -1
  16. package/dist/dao/trip-track/trip-track.dao.d.ts +49 -0
  17. package/dist/dao/trip-track/trip-track.dao.js +252 -0
  18. package/dist/dao/trip-track/trip-track.dao.js.map +1 -0
  19. package/dist/index.d.ts +12 -10
  20. package/dist/index.js +13 -11
  21. package/dist/index.js.map +1 -1
  22. package/dist/interfaces/driver-tracking/driver-tracking.interfaces.d.ts +23 -44
  23. package/dist/interfaces/event/event.interfaces.d.ts +22 -0
  24. package/dist/interfaces/{gps-location/gps-location.interfaces.js → event/event.interfaces.js} +1 -1
  25. package/dist/interfaces/event/event.interfaces.js.map +1 -0
  26. package/dist/interfaces/route/route.interfaces.d.ts +3 -0
  27. package/dist/interfaces/trip/trip.interfaces.d.ts +2 -0
  28. package/dist/interfaces/trip-track/trip-track.interfaces.d.ts +82 -0
  29. package/dist/interfaces/trip-track/trip-track.interfaces.js +3 -0
  30. package/dist/interfaces/trip-track/trip-track.interfaces.js.map +1 -0
  31. package/package.json +1 -1
  32. package/dist/dao/gps-location/gps-location.dao.d.ts +0 -76
  33. package/dist/dao/gps-location/gps-location.dao.js +0 -364
  34. package/dist/dao/gps-location/gps-location.dao.js.map +0 -1
  35. package/dist/interfaces/gps-location/gps-location.interfaces.d.ts +0 -30
  36. package/dist/interfaces/gps-location/gps-location.interfaces.js.map +0 -1
@@ -0,0 +1,118 @@
1
+ name: Build and Push to ECR
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+
8
+ # Shared constants
9
+ env:
10
+ AWS_REGION: us-east-1
11
+ ECR_REPOSITORY: tms-tbt-migration
12
+
13
+ jobs:
14
+ build_and_push:
15
+ name: Build and Push Migrations Image
16
+ runs-on: ubuntu-latest
17
+ environment: development
18
+ concurrency: build-push
19
+
20
+ permissions:
21
+ id-token: write
22
+ contents: read
23
+
24
+ steps:
25
+ - name: Checkout
26
+ uses: actions/checkout@v4
27
+
28
+ - name: Compute image tags
29
+ id: tags
30
+ run: |
31
+ # Compute timestamp in UTC (YYYYmmdd-HHMM format)
32
+ TIMESTAMP=$(date -u +'%Y.%m.%d-%H%M')
33
+ echo "timestamp=$TIMESTAMP" >> $GITHUB_OUTPUT
34
+
35
+ # Compute short and full SHA
36
+ SHORT_SHA=$(git rev-parse --short HEAD)
37
+ FULL_SHA=$(git rev-parse HEAD)
38
+ echo "short_sha=$SHORT_SHA" >> $GITHUB_OUTPUT
39
+ echo "full_sha=$FULL_SHA" >> $GITHUB_OUTPUT
40
+
41
+ # Compute immutable image tags
42
+ CI_TAG="ci-${TIMESTAMP}-${SHORT_SHA}"
43
+ SHA_TAG="sha-${FULL_SHA}"
44
+ echo "ci_tag=$CI_TAG" >> $GITHUB_OUTPUT
45
+ echo "sha_tag=$SHA_TAG" >> $GITHUB_OUTPUT
46
+
47
+ echo "## Image Tags" >> $GITHUB_STEP_SUMMARY
48
+ echo "- CI Tag: \`$CI_TAG\`" >> $GITHUB_STEP_SUMMARY
49
+ echo "- SHA Tag: \`$SHA_TAG\`" >> $GITHUB_STEP_SUMMARY
50
+ echo "- Commit: \`$FULL_SHA\`" >> $GITHUB_STEP_SUMMARY
51
+
52
+ - name: Configure AWS credentials
53
+ uses: aws-actions/configure-aws-credentials@v4
54
+ with:
55
+ # SOURCE OF TRUTH: GitHub Environment Secret (global)
56
+ role-to-assume: ${{ secrets.DEVELOPMENT_AWS_ROLE_TO_ASUME_OIDC }}
57
+ aws-region: ${{ env.AWS_REGION }}
58
+
59
+ - name: Login to Amazon ECR
60
+ id: login-ecr
61
+ uses: aws-actions/amazon-ecr-login@v2
62
+
63
+ - name: Build Docker image
64
+ id: build-image
65
+ env:
66
+ ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
67
+ CI_TAG: ${{ steps.tags.outputs.ci_tag }}
68
+ SHA_TAG: ${{ steps.tags.outputs.sha_tag }}
69
+ run: |
70
+ echo "Building image for linux/amd64..."
71
+ docker buildx build \
72
+ --platform linux/amd64 \
73
+ -t $ECR_REGISTRY/$ECR_REPOSITORY:$CI_TAG \
74
+ -t $ECR_REGISTRY/$ECR_REPOSITORY:$SHA_TAG \
75
+ --load \
76
+ .
77
+
78
+ # Output the canonical deployment tag
79
+ echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$SHA_TAG" >> $GITHUB_OUTPUT
80
+
81
+ - name: Push image tags to Amazon ECR
82
+ env:
83
+ ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
84
+ CI_TAG: ${{ steps.tags.outputs.ci_tag }}
85
+ SHA_TAG: ${{ steps.tags.outputs.sha_tag }}
86
+ run: |
87
+ echo "Pushing immutable tags to ECR..."
88
+ docker push $ECR_REGISTRY/$ECR_REPOSITORY:$CI_TAG
89
+ docker push $ECR_REGISTRY/$ECR_REPOSITORY:$SHA_TAG
90
+
91
+ echo "## Pushed Images" >> $GITHUB_STEP_SUMMARY
92
+ echo "- \`$ECR_REGISTRY/$ECR_REPOSITORY:$CI_TAG\`" >> $GITHUB_STEP_SUMMARY
93
+ echo "- \`$ECR_REGISTRY/$ECR_REPOSITORY:$SHA_TAG\`" >> $GITHUB_STEP_SUMMARY
94
+
95
+ - name: Build Summary
96
+ env:
97
+ ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
98
+ CI_TAG: ${{ steps.tags.outputs.ci_tag }}
99
+ SHA_TAG: ${{ steps.tags.outputs.sha_tag }}
100
+ FULL_SHA: ${{ steps.tags.outputs.full_sha }}
101
+ run: |
102
+ echo "## ✅ Build and Push Complete" >> $GITHUB_STEP_SUMMARY
103
+ echo "" >> $GITHUB_STEP_SUMMARY
104
+ echo "### Build Details" >> $GITHUB_STEP_SUMMARY
105
+ echo "- **Commit SHA**: \`$FULL_SHA\`" >> $GITHUB_STEP_SUMMARY
106
+ echo "- **ECR Repository**: \`$ECR_REPOSITORY\`" >> $GITHUB_STEP_SUMMARY
107
+ echo "" >> $GITHUB_STEP_SUMMARY
108
+ echo "### Immutable Image Tags" >> $GITHUB_STEP_SUMMARY
109
+ echo "" >> $GITHUB_STEP_SUMMARY
110
+ echo "**SHA Tag (recommended for deployment):**" >> $GITHUB_STEP_SUMMARY
111
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
112
+ echo "$ECR_REGISTRY/$ECR_REPOSITORY:$SHA_TAG" >> $GITHUB_STEP_SUMMARY
113
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
114
+ echo "" >> $GITHUB_STEP_SUMMARY
115
+ echo "**CI Tag (with timestamp):**" >> $GITHUB_STEP_SUMMARY
116
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
117
+ echo "$ECR_REGISTRY/$ECR_REPOSITORY:$CI_TAG" >> $GITHUB_STEP_SUMMARY
118
+ echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
package/Dockerfile ADDED
@@ -0,0 +1,36 @@
1
+ # ==============================================
2
+ # Knex Migrations Container (Optimized)
3
+ # ==============================================
4
+ # Note: This container needs TypeScript support since migrations are in TS
5
+ # It's a short-lived container, so optimization focus is on build speed
6
+ FROM node:22-alpine
7
+
8
+ WORKDIR /app
9
+
10
+ # Install only needed dependencies
11
+ COPY package*.json ./
12
+ RUN npm ci && \
13
+ npm cache clean --force
14
+
15
+ # Copy TypeScript configuration
16
+ COPY tsconfig.json ./
17
+
18
+ # Copy knexfile and migrations
19
+ COPY knexfile.ts ./
20
+ COPY migrations ./migrations
21
+
22
+ # Copy source code (needed for imports in migrations)
23
+ COPY src ./src
24
+
25
+ # Set environment to production
26
+ ENV NODE_ENV=production
27
+
28
+ # Create non-root user
29
+ RUN addgroup -g 1001 -S nodejs && \
30
+ adduser -S nodejs -u 1001 && \
31
+ chown -R nodejs:nodejs /app
32
+
33
+ USER nodejs
34
+
35
+ # Default command runs migrations
36
+ CMD ["npx", "knex", "migrate:latest"]
package/build-image.sh ADDED
@@ -0,0 +1,16 @@
1
+ #!/bin/bash
2
+
3
+ # Build the Docker image for local development
4
+ # Use --platform to ensure linux/amd64 compatibility for AWS ECS/Fargate
5
+ IMAGE_NAME='tms-tbt-knex'
6
+ TAG='first'
7
+ docker buildx build --platform linux/amd64 -t $IMAGE_NAME:$TAG --load .
8
+
9
+ echo "✓ Image built successfully: $IMAGE_NAME:$TAG"
10
+ echo ""
11
+ echo "To use this image in another docker-compose.yml:"
12
+ echo " services:"
13
+ echo " migrations:"
14
+ echo " image: $IMAGE_NAME:$TAG"
15
+
16
+ # docker tag tms-tbt-knex:first 937623187882.dkr.ecr.us-east-1.amazonaws.com/tms-tbt-migration:first
@@ -1,24 +1,21 @@
1
- import { IDriverTracking, IDriverTrackingCreate, IDriverTrackingBatchCreate, IActiveDriver, ITrackingSession, ITrackingFilters } from "../../interfaces/driver-tracking/driver-tracking.interfaces";
1
+ import { IDriverTracking, IDriverTrackingBatchCreate, IActiveDriver, ITrackingSession, ITrackingFilters } from "../../interfaces/driver-tracking/driver-tracking.interfaces";
2
+ import { ITrackPoint } from "../../interfaces/trip-track/trip-track.interfaces";
2
3
  import { IDataPaginator } from "../../d.types";
3
4
  export declare class DriverTrackingDAO {
4
5
  private _knex?;
5
6
  private get knex();
6
7
  /**
7
- * Create a single tracking point
8
+ * Batch create tracking points (for mobile uploads)
8
9
  */
9
- create(data: IDriverTrackingCreate): Promise<IDriverTracking>;
10
+ createBatch(batch: IDriverTrackingBatchCreate): Promise<number>;
10
11
  /**
11
- * Batch create tracking points (for mobile uploads)
12
+ * Get all tracking points for a trip (for consolidation)
12
13
  */
13
- createBatch(userId: number, batch: IDriverTrackingBatchCreate): Promise<number>;
14
+ getByTripId(tripId: number): Promise<IDriverTracking[]>;
14
15
  /**
15
16
  * Get tracking points by session ID (for playback)
16
17
  */
17
18
  getBySessionId(sessionId: string, page?: number, limit?: number): Promise<IDataPaginator<IDriverTracking>>;
18
- /**
19
- * Get tracking points with filters
20
- */
21
- getWithFilters(filters: ITrackingFilters, page?: number, limit?: number): Promise<IDataPaginator<IDriverTracking>>;
22
19
  /**
23
20
  * Get all active drivers (currently navigating)
24
21
  */
@@ -27,6 +24,10 @@ export declare class DriverTrackingDAO {
27
24
  * Get tracking sessions list
28
25
  */
29
26
  getSessions(filters: ITrackingFilters, page?: number, limit?: number): Promise<IDataPaginator<ITrackingSession>>;
27
+ /**
28
+ * Get tracking points with filters
29
+ */
30
+ getWithFilters(filters: ITrackingFilters, page?: number, limit?: number): Promise<IDataPaginator<IDriverTracking>>;
30
31
  /**
31
32
  * End a tracking session (mark points as not navigating)
32
33
  */
@@ -34,9 +35,13 @@ export declare class DriverTrackingDAO {
34
35
  /**
35
36
  * Get latest location for a user
36
37
  */
37
- getLatestLocationByUserId(userId: number): Promise<IDriverTracking | null>;
38
+ getLatestByUserId(userId: number): Promise<IDriverTracking | null>;
39
+ /**
40
+ * Delete all tracking points for a trip (after consolidation)
41
+ */
42
+ deleteByTripId(tripId: number): Promise<number>;
38
43
  /**
39
- * Delete old tracking data (cleanup)
44
+ * Convert driver tracking records to ITrackPoint array (for consolidation)
40
45
  */
41
- deleteOlderThan(days: number): Promise<number>;
46
+ toTrackPoints(points: IDriverTracking[]): ITrackPoint[];
42
47
  }
@@ -22,41 +22,15 @@ class DriverTrackingDAO {
22
22
  }
23
23
  return this._knex;
24
24
  }
25
- /**
26
- * Create a single tracking point
27
- */
28
- create(data) {
29
- return __awaiter(this, void 0, void 0, function* () {
30
- var _a;
31
- const [result] = yield this.knex("driver_tracking")
32
- .insert({
33
- uuid: (0, uuid_1.v4)(),
34
- user_id: data.user_id,
35
- assignment_id: data.assignment_id || null,
36
- route_id: data.route_id || null,
37
- session_id: data.session_id,
38
- latitude: data.latitude,
39
- longitude: data.longitude,
40
- accuracy: data.accuracy || null,
41
- altitude: data.altitude || null,
42
- speed: data.speed || null,
43
- heading: data.heading || null,
44
- recorded_at: data.recorded_at,
45
- is_navigating: (_a = data.is_navigating) !== null && _a !== void 0 ? _a : true,
46
- metadata: data.metadata ? JSON.stringify(data.metadata) : null,
47
- })
48
- .returning("*");
49
- return result;
50
- });
51
- }
52
25
  /**
53
26
  * Batch create tracking points (for mobile uploads)
54
27
  */
55
- createBatch(userId, batch) {
28
+ createBatch(batch) {
56
29
  return __awaiter(this, void 0, void 0, function* () {
57
30
  const records = batch.points.map((point) => ({
58
31
  uuid: (0, uuid_1.v4)(),
59
- user_id: userId,
32
+ user_id: batch.user_id,
33
+ trip_id: batch.trip_id,
60
34
  assignment_id: batch.assignment_id || null,
61
35
  route_id: batch.route_id || null,
62
36
  session_id: batch.session_id,
@@ -70,15 +44,25 @@ class DriverTrackingDAO {
70
44
  is_navigating: true,
71
45
  metadata: point.metadata ? JSON.stringify(point.metadata) : null,
72
46
  }));
73
- const result = yield this.knex("driver_tracking").insert(records);
47
+ yield this.knex("driver_tracking").insert(records);
74
48
  return records.length;
75
49
  });
76
50
  }
51
+ /**
52
+ * Get all tracking points for a trip (for consolidation)
53
+ */
54
+ getByTripId(tripId) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ return this.knex("driver_tracking")
57
+ .where("trip_id", tripId)
58
+ .orderBy("recorded_at", "asc");
59
+ });
60
+ }
77
61
  /**
78
62
  * Get tracking points by session ID (for playback)
79
63
  */
80
64
  getBySessionId(sessionId_1) {
81
- return __awaiter(this, arguments, void 0, function* (sessionId, page = 1, limit = 1000) {
65
+ return __awaiter(this, arguments, void 0, function* (sessionId, page = 1, limit = 5000) {
82
66
  const offset = (page - 1) * limit;
83
67
  const data = yield this.knex("driver_tracking")
84
68
  .where("session_id", sessionId)
@@ -102,74 +86,11 @@ class DriverTrackingDAO {
102
86
  };
103
87
  });
104
88
  }
105
- /**
106
- * Get tracking points with filters
107
- */
108
- getWithFilters(filters_1) {
109
- return __awaiter(this, arguments, void 0, function* (filters, page = 1, limit = 100) {
110
- const offset = (page - 1) * limit;
111
- let query = this.knex("driver_tracking as dt")
112
- .leftJoin("users as u", "dt.user_id", "u.id")
113
- .select("dt.*", this.knex.raw(`jsonb_build_object(
114
- 'id', u.id,
115
- 'uuid', u.uuid,
116
- 'email', u.email,
117
- 'username', u.username,
118
- 'first_name', u.first_name,
119
- 'last_name', u.last_name
120
- ) as user`));
121
- // Apply filters
122
- if (filters.user_id) {
123
- query = query.where("dt.user_id", filters.user_id);
124
- }
125
- if (filters.assignment_id) {
126
- query = query.where("dt.assignment_id", filters.assignment_id);
127
- }
128
- if (filters.route_id) {
129
- query = query.where("dt.route_id", filters.route_id);
130
- }
131
- if (filters.session_id) {
132
- query = query.where("dt.session_id", filters.session_id);
133
- }
134
- if (filters.from_date) {
135
- query = query.where("dt.recorded_at", ">=", filters.from_date);
136
- }
137
- if (filters.to_date) {
138
- query = query.where("dt.recorded_at", "<=", filters.to_date);
139
- }
140
- if (filters.is_navigating !== undefined) {
141
- query = query.where("dt.is_navigating", filters.is_navigating);
142
- }
143
- // Get count before pagination
144
- const countQuery = query.clone();
145
- const totalCountResult = yield countQuery
146
- .clearSelect()
147
- .count("dt.id as count")
148
- .first();
149
- const totalCount = Number((totalCountResult === null || totalCountResult === void 0 ? void 0 : totalCountResult.count) || 0);
150
- // Get paginated data
151
- const data = yield query
152
- .orderBy("dt.recorded_at", "desc")
153
- .limit(limit)
154
- .offset(offset);
155
- const totalPages = Math.ceil(totalCount / limit);
156
- return {
157
- success: true,
158
- data,
159
- page,
160
- limit,
161
- count: data.length,
162
- totalCount,
163
- totalPages,
164
- };
165
- });
166
- }
167
89
  /**
168
90
  * Get all active drivers (currently navigating)
169
91
  */
170
92
  getActiveDrivers() {
171
93
  return __awaiter(this, void 0, void 0, function* () {
172
- // Get the latest tracking point for each user who is currently navigating
173
94
  const subquery = this.knex("driver_tracking")
174
95
  .select("user_id")
175
96
  .max("recorded_at as max_recorded_at")
@@ -181,27 +102,22 @@ class DriverTrackingDAO {
181
102
  this.on("dt.user_id", "=", "latest.user_id").andOn("dt.recorded_at", "=", "latest.max_recorded_at");
182
103
  })
183
104
  .leftJoin("users as u", "dt.user_id", "u.id")
105
+ .leftJoin("trips as t", "dt.trip_id", "t.id")
184
106
  .leftJoin("route_assignments as ra", "dt.assignment_id", "ra.id")
185
- .leftJoin("routes as r", "ra.route_id", "r.id")
186
- .select("dt.user_id", "dt.session_id", "dt.assignment_id", "dt.latitude", "dt.longitude", "dt.heading", "dt.speed", "dt.recorded_at", "dt.is_navigating", this.knex.raw(`jsonb_build_object(
187
- 'id', u.id,
107
+ .leftJoin("routes as r", "dt.route_id", "r.id")
108
+ .select("dt.session_id", "dt.latitude", "dt.longitude", "dt.heading", "dt.speed", "dt.recorded_at", this.knex.raw("t.uuid as trip_uuid"), this.knex.raw("ra.uuid as assignment_uuid"), this.knex.raw("r.uuid as route_uuid"), this.knex.raw(`jsonb_build_object(
188
109
  'uuid', u.uuid,
189
110
  'email', u.email,
190
111
  'username', u.username,
191
112
  'first_name', u.first_name,
192
113
  'last_name', u.last_name
193
- ) as user`), this.knex.raw(`CASE WHEN ra.id IS NOT NULL THEN jsonb_build_object(
194
- 'id', ra.id,
195
- 'uuid', ra.uuid,
196
- 'status', ra.status,
197
- 'route', jsonb_build_object('id', r.id, 'uuid', r.uuid, 'name', r.name)
198
- ) ELSE NULL END as assignment`));
114
+ ) as user`));
199
115
  return results.map((row) => ({
200
- user_id: row.user_id,
201
116
  user: row.user,
202
117
  session_id: row.session_id,
203
- assignment_id: row.assignment_id,
204
- assignment: row.assignment,
118
+ trip_uuid: row.trip_uuid,
119
+ assignment_uuid: row.assignment_uuid || null,
120
+ route_uuid: row.route_uuid || null,
205
121
  current_location: {
206
122
  latitude: parseFloat(row.latitude),
207
123
  longitude: parseFloat(row.longitude),
@@ -209,7 +125,6 @@ class DriverTrackingDAO {
209
125
  speed: row.speed ? parseFloat(row.speed) : null,
210
126
  recorded_at: row.recorded_at,
211
127
  },
212
- is_navigating: row.is_navigating,
213
128
  }));
214
129
  });
215
130
  }
@@ -220,13 +135,16 @@ class DriverTrackingDAO {
220
135
  return __awaiter(this, arguments, void 0, function* (filters, page = 1, limit = 20) {
221
136
  const offset = (page - 1) * limit;
222
137
  let query = this.knex("driver_tracking as dt")
223
- .select("dt.session_id", "dt.user_id", "dt.assignment_id", "dt.route_id")
138
+ .select("dt.session_id", "dt.user_id", "dt.trip_id", "dt.assignment_id", "dt.route_id")
224
139
  .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"))
225
- .groupBy("dt.session_id", "dt.user_id", "dt.assignment_id", "dt.route_id");
140
+ .groupBy("dt.session_id", "dt.user_id", "dt.trip_id", "dt.assignment_id", "dt.route_id");
226
141
  // Apply filters
227
142
  if (filters.user_id) {
228
143
  query = query.where("dt.user_id", filters.user_id);
229
144
  }
145
+ if (filters.trip_id) {
146
+ query = query.where("dt.trip_id", filters.trip_id);
147
+ }
230
148
  if (filters.assignment_id) {
231
149
  query = query.where("dt.assignment_id", filters.assignment_id);
232
150
  }
@@ -243,8 +161,10 @@ class DriverTrackingDAO {
243
161
  const sessionsQuery = this.knex
244
162
  .from(query.as("sessions"))
245
163
  .leftJoin("users as u", "sessions.user_id", "u.id")
246
- .select("sessions.*", this.knex.raw(`jsonb_build_object(
247
- 'id', u.id,
164
+ .leftJoin("trips as t", "sessions.trip_id", "t.id")
165
+ .leftJoin("route_assignments as ra", "sessions.assignment_id", "ra.id")
166
+ .leftJoin("routes as r", "sessions.route_id", "r.id")
167
+ .select("sessions.*", this.knex.raw("t.uuid as trip_uuid"), this.knex.raw("ra.uuid as assignment_uuid"), this.knex.raw("r.uuid as route_uuid"), this.knex.raw(`jsonb_build_object(
248
168
  'uuid', u.uuid,
249
169
  'email', u.email,
250
170
  'username', u.username,
@@ -267,10 +187,10 @@ class DriverTrackingDAO {
267
187
  success: true,
268
188
  data: data.map((row) => ({
269
189
  session_id: row.session_id,
270
- user_id: row.user_id,
271
190
  user: row.user,
272
- assignment_id: row.assignment_id,
273
- route_id: row.route_id,
191
+ trip_uuid: row.trip_uuid,
192
+ assignment_uuid: row.assignment_uuid || null,
193
+ route_uuid: row.route_uuid || null,
274
194
  started_at: row.started_at,
275
195
  ended_at: row.ended_at,
276
196
  total_points: parseInt(row.total_points),
@@ -283,6 +203,59 @@ class DriverTrackingDAO {
283
203
  };
284
204
  });
285
205
  }
206
+ /**
207
+ * Get tracking points with filters
208
+ */
209
+ getWithFilters(filters_1) {
210
+ return __awaiter(this, arguments, void 0, function* (filters, page = 1, limit = 100) {
211
+ const offset = (page - 1) * limit;
212
+ let query = this.knex("driver_tracking as dt")
213
+ .leftJoin("users as u", "dt.user_id", "u.id")
214
+ .select("dt.*", this.knex.raw(`jsonb_build_object(
215
+ 'uuid', u.uuid,
216
+ 'email', u.email,
217
+ 'username', u.username,
218
+ 'first_name', u.first_name,
219
+ 'last_name', u.last_name
220
+ ) as user`));
221
+ if (filters.user_id)
222
+ query = query.where("dt.user_id", filters.user_id);
223
+ if (filters.trip_id)
224
+ query = query.where("dt.trip_id", filters.trip_id);
225
+ if (filters.assignment_id)
226
+ query = query.where("dt.assignment_id", filters.assignment_id);
227
+ if (filters.route_id)
228
+ query = query.where("dt.route_id", filters.route_id);
229
+ if (filters.session_id)
230
+ query = query.where("dt.session_id", filters.session_id);
231
+ if (filters.from_date)
232
+ query = query.where("dt.recorded_at", ">=", filters.from_date);
233
+ if (filters.to_date)
234
+ query = query.where("dt.recorded_at", "<=", filters.to_date);
235
+ if (filters.is_navigating !== undefined)
236
+ query = query.where("dt.is_navigating", filters.is_navigating);
237
+ const countQuery = query.clone();
238
+ const totalCountResult = yield countQuery
239
+ .clearSelect()
240
+ .count("dt.id as count")
241
+ .first();
242
+ const totalCount = Number((totalCountResult === null || totalCountResult === void 0 ? void 0 : totalCountResult.count) || 0);
243
+ const data = yield query
244
+ .orderBy("dt.recorded_at", "desc")
245
+ .limit(limit)
246
+ .offset(offset);
247
+ const totalPages = Math.ceil(totalCount / limit);
248
+ return {
249
+ success: true,
250
+ data,
251
+ page,
252
+ limit,
253
+ count: data.length,
254
+ totalCount,
255
+ totalPages,
256
+ };
257
+ });
258
+ }
286
259
  /**
287
260
  * End a tracking session (mark points as not navigating)
288
261
  */
@@ -302,7 +275,7 @@ class DriverTrackingDAO {
302
275
  /**
303
276
  * Get latest location for a user
304
277
  */
305
- getLatestLocationByUserId(userId) {
278
+ getLatestByUserId(userId) {
306
279
  return __awaiter(this, void 0, void 0, function* () {
307
280
  const result = yield this.knex("driver_tracking")
308
281
  .where("user_id", userId)
@@ -312,18 +285,29 @@ class DriverTrackingDAO {
312
285
  });
313
286
  }
314
287
  /**
315
- * Delete old tracking data (cleanup)
288
+ * Delete all tracking points for a trip (after consolidation)
316
289
  */
317
- deleteOlderThan(days) {
290
+ deleteByTripId(tripId) {
318
291
  return __awaiter(this, void 0, void 0, function* () {
319
- const cutoffDate = new Date();
320
- cutoffDate.setDate(cutoffDate.getDate() - days);
321
- const result = yield this.knex("driver_tracking")
322
- .where("recorded_at", "<", cutoffDate)
323
- .delete();
324
- return result;
292
+ return this.knex("driver_tracking").where("trip_id", tripId).delete();
325
293
  });
326
294
  }
295
+ /**
296
+ * Convert driver tracking records to ITrackPoint array (for consolidation)
297
+ */
298
+ toTrackPoints(points) {
299
+ return points.map((p) => ({
300
+ lat: Number(p.latitude),
301
+ lng: Number(p.longitude),
302
+ altitude: p.altitude ? Number(p.altitude) : null,
303
+ speed: p.speed ? Number(p.speed) : null,
304
+ heading: p.heading ? Number(p.heading) : null,
305
+ accuracy: p.accuracy ? Number(p.accuracy) : null,
306
+ recorded_at: typeof p.recorded_at === "string"
307
+ ? p.recorded_at
308
+ : p.recorded_at.toISOString(),
309
+ }));
310
+ }
327
311
  }
328
312
  exports.DriverTrackingDAO = DriverTrackingDAO;
329
313
  //# sourceMappingURL=driver-tracking.dao.js.map
@@ -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":"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"}
@@ -0,0 +1,38 @@
1
+ import { IEvent, IEventCreate, IEventUpdate } from "../../interfaces/event/event.interfaces";
2
+ import { IBaseDAO, IDataPaginator } from "../../d.types";
3
+ export declare class EventDAO implements IBaseDAO<IEvent> {
4
+ private _knex?;
5
+ private get knex();
6
+ /**
7
+ * Get all events with pagination
8
+ */
9
+ getAll(page?: number, limit?: number): Promise<IDataPaginator<IEvent>>;
10
+ /**
11
+ * Get event by ID (only active events by default)
12
+ */
13
+ getById(id: number, includeInactive?: boolean): Promise<IEvent | null>;
14
+ /**
15
+ * Get event by UUID (only active events by default)
16
+ */
17
+ getByUuid(uuid: string, includeInactive?: boolean): Promise<IEvent | null>;
18
+ /**
19
+ * Get event by name (only active events by default)
20
+ */
21
+ getByName(name: string, includeInactive?: boolean): Promise<IEvent | null>;
22
+ /**
23
+ * Create a new event
24
+ */
25
+ create(data: IEventCreate): Promise<IEvent>;
26
+ /**
27
+ * Update an event by ID
28
+ */
29
+ update(id: number, data: IEventUpdate): Promise<IEvent | null>;
30
+ /**
31
+ * Delete an event by ID (soft delete by setting is_active to false)
32
+ */
33
+ delete(id: number): Promise<boolean>;
34
+ /**
35
+ * Hard delete an event by ID
36
+ */
37
+ hardDelete(id: number): Promise<boolean>;
38
+ }