@golemio/pid 5.19.1-dev.2799089619 → 5.19.1-dev.2815853394

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 (39) hide show
  1. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js +10 -4
  2. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js.map +1 -1
  3. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.d.ts +30 -1
  4. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.js +73 -53
  5. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/BasePositionsManager.js.map +1 -1
  6. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.d.ts +2 -2
  7. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js +12 -20
  8. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js.map +1 -1
  9. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.d.ts +21 -1
  10. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js +31 -0
  11. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js.map +1 -1
  12. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/ComputeDelayHelper.js +35 -1
  13. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/ComputeDelayHelper.js.map +1 -1
  14. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/AbstractDelayAtStop.js +35 -5
  15. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/AbstractDelayAtStop.js.map +1 -1
  16. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.js +37 -5
  17. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.js.map +1 -1
  18. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js +37 -5
  19. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js.map +1 -1
  20. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.js +12 -20
  21. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.js.map +1 -1
  22. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/RegionalBusComputeDelayHelper.js +35 -1
  23. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/RegionalBusComputeDelayHelper.js.map +1 -1
  24. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/strategy/BusDelayAtStop.js +37 -5
  25. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/strategy/BusDelayAtStop.js.map +1 -1
  26. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.d.ts +68 -0
  27. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.js +216 -0
  28. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.js.map +1 -0
  29. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.js +37 -11
  30. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.js.map +1 -1
  31. package/dist/schema-definitions/vehicle-positions/models/VPTripsModel.js +22 -10
  32. package/dist/schema-definitions/vehicle-positions/models/VPTripsModel.js.map +1 -1
  33. package/dist/schema-definitions/vehicle-positions/models/interfaces/VPTripsLastPositionInterfaces.d.ts +8 -8
  34. package/docs/asyncapi.yaml +0 -9
  35. package/docs/cache/types/psql.md +6 -11
  36. package/docs/processing/index.md +1 -0
  37. package/docs/processing/state_position_tracking/tcp_dpp_common.md +6 -0
  38. package/docs/processing/trip_context/index.md +149 -0
  39. package/package.json +1 -1
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createInitial = createInitial;
37
+ exports.commitValidPosition = commitValidPosition;
38
+ exports.transitionState = transitionState;
39
+ exports.recordTracking = recordTracking;
40
+ exports.recordBeforeTrackDelayed = recordBeforeTrackDelayed;
41
+ exports.updateAtStopStreak = updateAtStopStreak;
42
+ exports.clearAtStopStreak = clearAtStopStreak;
43
+ exports.resetLastStopDelay = resetLastStopDelay;
44
+ exports.updateLastStopSequenceIfUnset = updateLastStopSequenceIfUnset;
45
+ exports.setLastStopArrivalDelay = setLastStopArrivalDelay;
46
+ exports.setLastStopDepartureDelay = setLastStopDepartureDelay;
47
+ exports.setLastPositionDelay = setLastPositionDelay;
48
+ exports.recordPropagatedDelay = recordPropagatedDelay;
49
+ const turf = __importStar(require("@turf/turf"));
50
+ const const_1 = require("../../../../../../const");
51
+ /**
52
+ * Builds a fresh trip context for a trip that has no persisted context yet.
53
+ */
54
+ function createInitial(tripId) {
55
+ return {
56
+ atStopStreak: {
57
+ stop_sequence: null,
58
+ firstPositionTimestamp: null,
59
+ firstPositionDelay: null,
60
+ },
61
+ lastPositionLastStop: {
62
+ sequence: null,
63
+ arrival_delay: null,
64
+ departure_delay: null,
65
+ },
66
+ lastPositionDelay: null,
67
+ lastPositionId: null,
68
+ lastPositionLat: null,
69
+ lastPositionLng: null,
70
+ lastPositionOriginTimestamp: null,
71
+ lastPositionTracking: null,
72
+ lastPositionCanceled: null,
73
+ lastPositionBeforeTrackDelayed: null,
74
+ lastPositionState: null,
75
+ lastStopSequence: null,
76
+ lastPositionStateChange: null,
77
+ tripId,
78
+ };
79
+ }
80
+ /**
81
+ * Commits a successfully processed position into the context - id, coordinates, canceled flag,
82
+ * origin timestamp, last stop sequence and the position state transition.
83
+ */
84
+ function commitValidPosition(context, position, positionToUpdate, canceled) {
85
+ context.lastPositionId = position.id;
86
+ context.lastPositionLat = position.lat;
87
+ context.lastPositionLng = position.lng;
88
+ context.lastPositionCanceled = canceled;
89
+ context.lastPositionOriginTimestamp = position.origin_timestamp.getTime();
90
+ context.lastStopSequence = positionToUpdate.last_stop_sequence ?? context.lastStopSequence ?? null;
91
+ transitionState(context, positionToUpdate.state_position);
92
+ }
93
+ /**
94
+ * Transitions the position state. By default only stamps `lastPositionStateChange` when the state
95
+ * actually changes; `forceTimestamp` always restamps regardless of whether the state changed.
96
+ */
97
+ function transitionState(context, state, options) {
98
+ const forceTimestamp = options?.forceTimestamp ?? false;
99
+ if (forceTimestamp || context.lastPositionState !== state) {
100
+ context.lastPositionState = state;
101
+ context.lastPositionStateChange = new Date().toISOString();
102
+ }
103
+ }
104
+ /**
105
+ * Records the last known tracking point (only for AT_STOP/ON_TRACK positions).
106
+ */
107
+ function recordTracking(context, position, positionToUpdate) {
108
+ if (positionToUpdate?.state_position === const_1.StatePositionEnum.AT_STOP ||
109
+ positionToUpdate?.state_position === const_1.StatePositionEnum.ON_TRACK ||
110
+ position.state_position === const_1.StatePositionEnum.AT_STOP ||
111
+ position.state_position === const_1.StatePositionEnum.ON_TRACK) {
112
+ const mergedPosition = { ...position, ...positionToUpdate };
113
+ // Explicit literal with `?? null` per field: any field that would otherwise merge in as
114
+ // `undefined` now persists as `null` instead. This is an intentional, documented behavior
115
+ // change - `undefined` keys get dropped by `JSON.stringify`, `null` keys are kept.
116
+ //
117
+ // mergedPosition.lat/lng (not raw position's) - avoids re-crashing turf.point on the same
118
+ // invalid coordinates the caller's guard already sanitized.
119
+ context.lastPositionTracking = turf.point([mergedPosition.lng, mergedPosition.lat], {
120
+ bearing: mergedPosition.bearing ?? null,
121
+ shape_dist_traveled: mergedPosition.shape_dist_traveled ?? null,
122
+ tcp_event: mergedPosition.tcp_event ?? null,
123
+ last_stop_sequence: mergedPosition.last_stop_sequence ?? null,
124
+ last_stop_id: mergedPosition.last_stop_id ?? null,
125
+ last_stop_arrival_time: mergedPosition.last_stop_arrival_time ?? null,
126
+ last_stop_departure_time: mergedPosition.last_stop_departure_time ?? null,
127
+ });
128
+ }
129
+ }
130
+ /**
131
+ * Records the sticky BEFORE_TRACK_DELAYED position. Stores the timestamp as-is (Date), never calls
132
+ * `.getTime()` on it.
133
+ */
134
+ function recordBeforeTrackDelayed(context, position, positionToUpdate) {
135
+ if (position.state_position === const_1.StatePositionEnum.BEFORE_TRACK_DELAYED) {
136
+ context.lastPositionBeforeTrackDelayed = {
137
+ delay: positionToUpdate?.delay ?? position.delay,
138
+ origin_timestamp: positionToUpdate?.origin_timestamp ?? position.origin_timestamp,
139
+ };
140
+ }
141
+ }
142
+ /**
143
+ * Starts a new at-stop streak when the stop sequence changed.
144
+ */
145
+ function updateAtStopStreak(context, position, positionToUpdate) {
146
+ const stopSequenceChanged = positionToUpdate
147
+ ? positionToUpdate.this_stop_sequence && context.atStopStreak.stop_sequence !== positionToUpdate.this_stop_sequence
148
+ : position.this_stop_sequence && context.atStopStreak.stop_sequence !== position.this_stop_sequence;
149
+ if (stopSequenceChanged) {
150
+ context.atStopStreak.stop_sequence = positionToUpdate
151
+ ? positionToUpdate.this_stop_sequence
152
+ : position.this_stop_sequence;
153
+ context.atStopStreak.firstPositionTimestamp = position.origin_timestamp.getTime();
154
+ context.atStopStreak.firstPositionDelay = positionToUpdate ? positionToUpdate.delay : position.delay;
155
+ }
156
+ }
157
+ /**
158
+ * Disrupts the at-stop streak. Zeroes ONLY `stop_sequence` - `firstPositionTimestamp` and
159
+ * `firstPositionDelay` are intentionally left untouched (persisted as-is).
160
+ */
161
+ function clearAtStopStreak(context) {
162
+ context.atStopStreak.stop_sequence = null;
163
+ }
164
+ /**
165
+ * Resets all last-stop-delay bookkeeping (sequence, arrival delay, departure delay).
166
+ */
167
+ function resetLastStopDelay(context) {
168
+ context.lastPositionLastStop.arrival_delay = null;
169
+ context.lastPositionLastStop.sequence = null;
170
+ context.lastPositionLastStop.departure_delay = null;
171
+ }
172
+ /**
173
+ * Sets the last-stop sequence only when it is currently unset, falling back from `positionToUpdate`
174
+ * to `position` to `null`.
175
+ */
176
+ function updateLastStopSequenceIfUnset(context, positionToUpdate, position) {
177
+ if (context.lastPositionLastStop.sequence === null) {
178
+ context.lastPositionLastStop.sequence = positionToUpdate?.last_stop_sequence ?? position?.last_stop_sequence ?? null;
179
+ }
180
+ }
181
+ /**
182
+ * Verbatim pass-through - `undefined` must remain `undefined` (dropped by `JSON.stringify`), never
183
+ * coerced to `null`, since that would change the persisted bytes.
184
+ */
185
+ function setLastStopArrivalDelay(context, delay) {
186
+ context.lastPositionLastStop.arrival_delay = delay;
187
+ }
188
+ /**
189
+ * Verbatim pass-through - `undefined` must remain `undefined` (dropped by `JSON.stringify`), never
190
+ * coerced to `null`, since that would change the persisted bytes.
191
+ */
192
+ function setLastStopDepartureDelay(context, delay) {
193
+ context.lastPositionLastStop.departure_delay = delay;
194
+ }
195
+ /**
196
+ * Verbatim pass-through - `undefined` must remain `undefined` (dropped by `JSON.stringify`), never
197
+ * coerced to `null`, since that would change the persisted bytes.
198
+ */
199
+ function setLastPositionDelay(context, positionToUpdate, position) {
200
+ context.lastPositionDelay = (positionToUpdate ? positionToUpdate.delay : position.delay);
201
+ }
202
+ /**
203
+ * Force-restamps the context for a propagated delay (mutation site #12): coordinates, forced state
204
+ * transition to BEFORE_TRACK_DELAYED and the sticky before-track-delayed snapshot.
205
+ */
206
+ function recordPropagatedDelay(context, lat, lng, delay, originTimestamp) {
207
+ // Sequelize DECIMAL columns come back as strings.
208
+ context.lastPositionLat = typeof lat === "string" ? parseFloat(lat) : lat;
209
+ context.lastPositionLng = typeof lng === "string" ? parseFloat(lng) : lng;
210
+ transitionState(context, const_1.StatePositionEnum.BEFORE_TRACK_DELAYED, { forceTimestamp: true });
211
+ context.lastPositionBeforeTrackDelayed = {
212
+ delay,
213
+ origin_timestamp: originTimestamp,
214
+ };
215
+ }
216
+ //# sourceMappingURL=TripContextHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TripContextHelper.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/trip-context/TripContextHelper.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
2
18
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
19
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
20
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
21
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
22
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
23
  };
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
8
41
  var __metadata = (this && this.__metadata) || function (k, v) {
9
42
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
43
  };
@@ -19,6 +52,7 @@ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
19
52
  const const_1 = require("../../../../../../const");
20
53
  const PositionsRepository_1 = require("../../data-access/PositionsRepository");
21
54
  const constants_1 = require("../../constants");
55
+ const TripContextHelper = __importStar(require("../../helpers/trip-context/TripContextHelper"));
22
56
  let AbstractPropagateDelayTask = class AbstractPropagateDelayTask extends integration_engine_1.AbstractTask {
23
57
  constructor(tripsRepository, positionsRepository) {
24
58
  super(constants_1.WORKER_NAME);
@@ -54,20 +88,12 @@ let AbstractPropagateDelayTask = class AbstractPropagateDelayTask extends integr
54
88
  }
55
89
  delayInSeconds = Math.max(0, delayInSeconds - turnTimeAcc);
56
90
  }
91
+ const context = { ...(trip.last_position_context ?? TripContextHelper.createInitial(trip.id)) };
92
+ TripContextHelper.recordPropagatedDelay(context, lastPosition.lat, lastPosition.lng, delayInSeconds, lastPosition.origin_timestamp);
57
93
  tripsToUpdate.set(trip.id, {
58
94
  id: trip.id,
59
95
  last_position_id: lastPosition.id,
60
- last_position_context: {
61
- ...trip.last_position_context,
62
- lastPositionLat: typeof lastPosition.lat === "string" ? parseFloat(lastPosition.lat) : lastPosition.lat,
63
- lastPositionLng: typeof lastPosition.lng === "string" ? parseFloat(lastPosition.lng) : lastPosition.lng,
64
- lastPositionState: const_1.StatePositionEnum.BEFORE_TRACK_DELAYED,
65
- lastPositionStateChange: new Date().toISOString(),
66
- lastPositionBeforeTrackDelayed: {
67
- delay: delayInSeconds,
68
- origin_timestamp: lastPosition.origin_timestamp,
69
- },
70
- },
96
+ last_position_context: context,
71
97
  });
72
98
  positionsToUpdate.push({
73
99
  id: lastPosition.id,
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractPropagateDelayTask.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractPropagateDelayTask.js","sourceRoot":"","sources":["../../../../../../../src/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/abstract/AbstractPropagateDelayTask.ts"],"names":[],"mappings":"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"}
@@ -215,7 +215,28 @@ VPTripsModel.jsonSchema = {
215
215
  },
216
216
  properties: {
217
217
  type: "object",
218
- // TODO add properties after creating shared schema for VP positions
218
+ properties: {
219
+ bearing: {
220
+ type: ["number", "null"],
221
+ },
222
+ shape_dist_traveled: {
223
+ type: ["number", "null"],
224
+ },
225
+ tcp_event: {
226
+ type: ["string", "null"],
227
+ },
228
+ last_stop_sequence: {
229
+ type: ["number", "null"],
230
+ },
231
+ last_stop_id: {
232
+ type: ["string", "null"],
233
+ },
234
+ // last_stop_arrival_time/last_stop_departure_time are written as Date
235
+ // instances (see TripContextHelper.recordTracking) before JSON
236
+ // serialization turns them into strings, so they are left unvalidated
237
+ // here rather than typed as "string" only.
238
+ },
239
+ required: [],
219
240
  },
220
241
  geometry: {
221
242
  $ref: "#/definitions/geometry",
@@ -234,18 +255,9 @@ VPTripsModel.jsonSchema = {
234
255
  lastPositionLastStop: {
235
256
  type: "object",
236
257
  properties: {
237
- id: {
238
- type: ["string", "null"],
239
- },
240
258
  sequence: {
241
259
  type: ["number", "null"],
242
260
  },
243
- arrival_time: {
244
- type: ["number", "null"],
245
- },
246
- departure_time: {
247
- type: ["number", "null"],
248
- },
249
261
  },
250
262
  required: [],
251
263
  },
@@ -1 +1 @@
1
- {"version":3,"file":"VPTripsModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/vehicle-positions/models/VPTripsModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VPTripsModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/vehicle-positions/models/VPTripsModel.ts"],"names":[],"mappings":"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"}
@@ -6,29 +6,29 @@ export interface IVPTripsComputedPositionAtStopStreak {
6
6
  firstPositionDelay: number | null;
7
7
  stop_sequence: number | null;
8
8
  }
9
+ type VPTripsTrackingFields = "bearing" | "shape_dist_traveled" | "tcp_event" | "last_stop_sequence" | "last_stop_id" | "last_stop_arrival_time" | "last_stop_departure_time";
10
+ export type IVPTripsTrackingProperties = Pick<IVPTripsPositionAttributes, VPTripsTrackingFields>;
9
11
  export interface IVPTripsLastPositionContext {
10
12
  lastPositionId: string | null;
11
- lastPositionLat?: number | null;
12
- lastPositionLng?: number | null;
13
+ lastPositionLat: number | null;
14
+ lastPositionLng: number | null;
13
15
  lastPositionOriginTimestamp: number | null;
14
- lastPositionTracking: Feature<Point, IVPTripsPositionAttributes> | null;
16
+ lastPositionTracking: Feature<Point, IVPTripsTrackingProperties> | null;
15
17
  lastPositionCanceled: boolean | null;
16
18
  lastPositionLastStop: {
17
- id: string | null;
18
19
  sequence: number | null;
19
- arrival_time: number | null;
20
20
  arrival_delay: number | null;
21
- departure_time: number | null;
22
21
  departure_delay: number | null;
23
22
  };
24
23
  lastPositionDelay: number | null;
25
24
  atStopStreak: IVPTripsComputedPositionAtStopStreak;
26
25
  lastPositionBeforeTrackDelayed: {
27
26
  delay: number | null;
28
- origin_timestamp: Date;
27
+ origin_timestamp: string | Date | null;
29
28
  } | null;
30
29
  lastPositionState: StatePositionEnum | null;
31
- lastStopSequence?: number | null;
30
+ lastStopSequence: number | null;
32
31
  lastPositionStateChange: string | null;
33
32
  tripId: string;
34
33
  }
34
+ export {};
@@ -1254,21 +1254,12 @@ components:
1254
1254
  lastPositionLastStop:
1255
1255
  type: object
1256
1256
  properties:
1257
- id:
1258
- type: string
1259
- nullable: true
1260
1257
  sequence:
1261
1258
  type: number
1262
1259
  nullable: true
1263
- arrival_time:
1264
- type: number
1265
- nullable: true
1266
1260
  arrival_delay:
1267
1261
  type: number
1268
1262
  nullable: true
1269
- departure_time:
1270
- type: number
1271
- nullable: true
1272
1263
  departure_delay:
1273
1264
  type: number
1274
1265
  nullable: true
@@ -5,31 +5,29 @@
5
5
  - Uložen jako JSON objekt s variabilními daty a atributy - v závislosti na stavu vozidla/spoje některé atributy chybí nebo jsou prázdné/null
6
6
  - Pokud se jedná o první pozici na spoji, pak všechny atributy kromě `tripId` budou null a nepovinné atributy můžou chybět
7
7
  - Aktuální interface viz [IVPTripsLastPositionContext](../../../src/schema-definitions/vehicle-positions/models/interfaces/VPTripsLastPositionInterfaces.ts)
8
+ - Invarianty mutace kontextu (kdo a jak smí kontext měnit) viz [Trip context](../../processing/trip_context/index.md)
8
9
 
9
10
  ```typescript
10
11
  interface IVPTripsLastPositionContext {
11
12
  lastPositionId: string | null;
12
- lastPositionLat?: number | null;
13
- lastPositionLng?: number | null;
13
+ lastPositionLat: number | null;
14
+ lastPositionLng: number | null;
14
15
  lastPositionOriginTimestamp: number | null;
15
- lastPositionTracking: Feature<Point, IVPTripsPositionAttributes> | null;
16
+ lastPositionTracking: Feature<Point, IVPTripsTrackingProperties> | null;
16
17
  lastPositionCanceled: boolean | null;
17
18
  lastPositionLastStop: {
18
- id: string | null;
19
19
  sequence: number | null;
20
- arrival_time: number | null;
21
20
  arrival_delay: number | null;
22
- departure_time: number | null;
23
21
  departure_delay: number | null;
24
22
  };
25
23
  lastPositionDelay: number | null;
26
24
  atStopStreak: IVPTripsComputedPositionAtStopStreak;
27
25
  lastPositionBeforeTrackDelayed: {
28
26
  delay: number | null;
29
- origin_timestamp: Date;
27
+ origin_timestamp: string | Date | null;
30
28
  } | null;
31
29
  lastPositionState: StatePositionEnum | null;
32
- lastStopSequence?: number | null;
30
+ lastStopSequence: number | null;
33
31
  lastPositionStateChange: string | null;
34
32
  tripId: string;
35
33
  }
@@ -49,11 +47,8 @@ interface IVPTripsLastPositionContext {
49
47
  - _poznámka_: využití během aktualizace tripu v databázi. Zbytečné a lze nahradit stavem pozice
50
48
  - **lastPositionLastStop** - informace o poslední zastávce, kterou vozidlo projelo
51
49
  - _poznámka_: využití pouze pro výpočet zpoždění na zastávce
52
- - **id** - GTFS ID zastávky. V současnosti je vždy null a nepoužívá se
53
50
  - **sequence** - pořadí zastávky v rámci GTFS stop times
54
- - **arrival_time** - čas příjezdu na zastávku podle GTFS
55
51
  - **arrival_delay** - vypočítané zpoždění příjezdu na zastávku oproti GTFS v sekundách
56
- - **departure_time** - čas odjezdu ze zastávky podle GTFS
57
52
  - **departure_delay** - vypočítané zpoždění odjezdu ze zastávky oproti GTFS v sekundách
58
53
  - **lastPositionDelay** - poslední vypočítané zpoždění vozidla na spoji
59
54
  - _poznámka_: využití pouze pro výpočet zpoždění na zastávce
@@ -16,3 +16,4 @@
16
16
  - [TCP Telmax Arriva City](./state_position_tracking/tcp_telmax_arriva_city.md)
17
17
  - [**Mapování MPVNet vehicle type na GTFS**](./vehicle_types.md)
18
18
  - [**Mapování MPVNet spojů na GTFS**](./trip_matching.md)
19
+ - [**Trip context (stav spoje mezi pozicemi)**](./trip_context/index.md)
@@ -35,6 +35,12 @@
35
35
  - jinak je stav `after_track`
36
36
  - **zvláštní případ**: pokud má pozice `cis_last_stop_id = null`, stav se znovu nevyhodnocuje – pozice si zachovává poslední známý stav (zmrazení stavu); to zabraňuje nežádoucímu cyklování zpět do `untracked` pouze kvůli chybějící CIS zastávce
37
37
  - Tracking (`tracking` je `2`)
38
+ - **neplatné/chybějící souřadnice** - pokud pozice nese `this_stop_id`/`last_stop_id`
39
+ odpovídající zastávce v GTFS trase spoje, dopočítá se poloha z této zastávky (stejný
40
+ pipeline jako reálné GPS, viz [trip_context/index.md](../trip_context/index.md#invalid-gps-coordinates-stop-based-fallback));
41
+ bez shody se stav zmrazí na posledním známém - v obou případech se pozice vždy uloží
42
+ jako zpracovaná (`state_process = processed`), aby se stejná chybná pozice nezacyklila
43
+ při dalším běhu
38
44
  - pokud je vozidlo 200 metrů od nejblizšího bodu na trase, stav je `off_track`
39
45
  - pokud je vozidlo v zastávce, je stav `at_stop`
40
46
  - pokud je vozidlo mimo zastávku a zároveň vozidlo poslalo zprávu `O` mimo poslední zastávku, je stav `on_track`