@golemio/pid 2.3.3-dev.677483558 → 2.3.3-dev.678665831

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 (95) hide show
  1. package/db/example/00_clear_test_data.sql +1 -0
  2. package/db/example/12_metro_line_A_gtfs_trips.sql +128 -0
  3. package/dist/const.d.ts +1 -0
  4. package/dist/const.js +1 -0
  5. package/dist/const.js.map +1 -1
  6. package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.js +1 -1
  7. package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/SaveMetroRailtrackDataToDBTask.js.map +1 -1
  8. package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.d.ts +3 -1
  9. package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.js +33 -2
  10. package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/data-access/MetroRailtrackGPSRepository.js.map +1 -1
  11. package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/interfaces/IAggregatedRailtrackGPSData.d.ts +11 -0
  12. package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/interfaces/IAggregatedRailtrackGPSData.js +3 -0
  13. package/dist/integration-engine/ropid-gtfs/workers/railtrack/tasks/interfaces/IAggregatedRailtrackGPSData.js.map +1 -0
  14. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.d.ts +1 -7
  15. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js +9 -34
  16. package/dist/integration-engine/vehicle-positions/VehiclePositionsWorker.js.map +1 -1
  17. package/dist/integration-engine/vehicle-positions/helpers/DateTimeUtils.d.ts +17 -0
  18. package/dist/integration-engine/vehicle-positions/helpers/DateTimeUtils.js +30 -0
  19. package/dist/integration-engine/vehicle-positions/helpers/DateTimeUtils.js.map +1 -0
  20. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.d.ts +24 -0
  21. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.js +73 -0
  22. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.js.map +1 -0
  23. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripCommonRunManager.d.ts +11 -0
  24. package/dist/integration-engine/vehicle-positions/helpers/{GtfsTripManager.js → gtfs-trip-run/GTFSTripCommonRunManager.js} +26 -47
  25. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripCommonRunManager.js.map +1 -0
  26. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripMetroRunManager.d.ts +10 -0
  27. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripMetroRunManager.js +70 -0
  28. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripMetroRunManager.js.map +1 -0
  29. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripRunManagerFactory.d.ts +8 -0
  30. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripRunManagerFactory.js +23 -0
  31. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripRunManagerFactory.js.map +1 -0
  32. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/interfaces/IDelayMessage.d.ts +6 -0
  33. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/interfaces/IDelayMessage.js +3 -0
  34. package/dist/integration-engine/vehicle-positions/helpers/gtfs-trip-run/interfaces/IDelayMessage.js.map +1 -0
  35. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsPositionsModel.d.ts +3 -1
  36. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsPositionsModel.js +14 -3
  37. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsPositionsModel.js.map +1 -1
  38. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsTripsModel.d.ts +3 -1
  39. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsTripsModel.js +14 -3
  40. package/dist/integration-engine/vehicle-positions/models/VehiclePositionsTripsModel.js.map +1 -1
  41. package/dist/integration-engine/vehicle-positions/models/helpers/VPPositionsMapper.d.ts +3 -1
  42. package/dist/integration-engine/vehicle-positions/models/helpers/VPPositionsMapper.js +24 -15
  43. package/dist/integration-engine/vehicle-positions/models/helpers/VPPositionsMapper.js.map +1 -1
  44. package/dist/integration-engine/vehicle-positions/models/helpers/VPTripsMapper.d.ts +5 -2
  45. package/dist/integration-engine/vehicle-positions/models/helpers/VPTripsMapper.js +16 -13
  46. package/dist/integration-engine/vehicle-positions/models/helpers/VPTripsMapper.js.map +1 -1
  47. package/dist/integration-engine/vehicle-positions/transformations/index.d.ts +0 -1
  48. package/dist/integration-engine/vehicle-positions/transformations/index.js +0 -1
  49. package/dist/integration-engine/vehicle-positions/transformations/index.js.map +1 -1
  50. package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js +2 -0
  51. package/dist/integration-engine/vehicle-positions/workers/runs/RunsWorker.js.map +1 -1
  52. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/DeleteDataTask.js +2 -2
  53. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/DeleteDataTask.js.map +1 -1
  54. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunsMessagesTask.d.ts +18 -0
  55. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunsMessagesTask.js +69 -0
  56. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/ProcessMetroRunsMessagesTask.js.map +1 -0
  57. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.d.ts +1 -0
  58. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js +13 -6
  59. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveMetroRunsToDBTask.js.map +1 -1
  60. package/dist/integration-engine/vehicle-positions/{data-access → workers/runs/tasks/data-access}/MetroRunsMessagesRepository.d.ts +1 -1
  61. package/dist/integration-engine/vehicle-positions/{data-access → workers/runs/tasks/data-access}/MetroRunsMessagesRepository.js +2 -2
  62. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/data-access/MetroRunsMessagesRepository.js.map +1 -0
  63. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/data-access/RunTripsRedisRepository.d.ts +4 -0
  64. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/data-access/RunTripsRedisRepository.js +18 -0
  65. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/data-access/RunTripsRedisRepository.js.map +1 -0
  66. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/helpers/MetroRouteHelper.d.ts +8 -0
  67. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/helpers/MetroRouteHelper.js +21 -0
  68. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/helpers/MetroRouteHelper.js.map +1 -0
  69. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/interfaces/IMetroRunInputForProcessing.d.ts +11 -0
  70. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/interfaces/IMetroRunInputForProcessing.js +3 -0
  71. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/interfaces/IMetroRunInputForProcessing.js.map +1 -0
  72. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/interfaces/IProcessMetroRunsMessagesInput.d.ts +5 -0
  73. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/interfaces/IProcessMetroRunsMessagesInput.js +3 -0
  74. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/interfaces/IProcessMetroRunsMessagesInput.js.map +1 -0
  75. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/schema/MetroTransformedRunsSchema.d.ts +6 -0
  76. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/schema/MetroTransformedRunsSchema.js +63 -0
  77. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/schema/MetroTransformedRunsSchema.js.map +1 -0
  78. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/transformations/MetroRunsMessageProcessingTransformation.d.ts +21 -0
  79. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/transformations/MetroRunsMessageProcessingTransformation.js +78 -0
  80. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/transformations/MetroRunsMessageProcessingTransformation.js.map +1 -0
  81. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/transformations/MetroRunsMessagesTransformation.d.ts +13 -0
  82. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/transformations/MetroRunsMessagesTransformation.js +43 -0
  83. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/transformations/MetroRunsMessagesTransformation.js.map +1 -0
  84. package/docs/openapi-output.yaml +1 -0
  85. package/package.json +3 -3
  86. package/db/example/12_metro_runs_messages.sql +0 -5
  87. package/dist/integration-engine/vehicle-positions/data-access/MetroRunsMessagesRepository.js.map +0 -1
  88. package/dist/integration-engine/vehicle-positions/data-access/index.d.ts +0 -1
  89. package/dist/integration-engine/vehicle-positions/data-access/index.js +0 -18
  90. package/dist/integration-engine/vehicle-positions/data-access/index.js.map +0 -1
  91. package/dist/integration-engine/vehicle-positions/helpers/GtfsTripManager.d.ts +0 -19
  92. package/dist/integration-engine/vehicle-positions/helpers/GtfsTripManager.js.map +0 -1
  93. package/dist/integration-engine/vehicle-positions/transformations/MetroRunsMessagesTransformation.d.ts +0 -6
  94. package/dist/integration-engine/vehicle-positions/transformations/MetroRunsMessagesTransformation.js +0 -40
  95. package/dist/integration-engine/vehicle-positions/transformations/MetroRunsMessagesTransformation.js.map +0 -1
@@ -0,0 +1,17 @@
1
+ export declare class DateTimeUtils {
2
+ private static TIMEZONE;
3
+ private static FORMAT_DATE_TIME;
4
+ private static FORMAT_TIME;
5
+ /**
6
+ * @example 2022-10-26T13:55:42+02:00
7
+ */
8
+ static formatISOTimestamp(isoTimestamp?: string): string;
9
+ /**
10
+ * @example 13:55:42
11
+ */
12
+ static parseTimeFromEpoch(unixTimestamp?: number): string;
13
+ /**
14
+ * @example 13:55:42
15
+ */
16
+ static parseTimeFromISO(isoTimestamp?: string): string;
17
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DateTimeUtils = void 0;
4
+ const luxon_1 = require("@golemio/core/dist/shared/luxon");
5
+ class DateTimeUtils {
6
+ /**
7
+ * @example 2022-10-26T13:55:42+02:00
8
+ */
9
+ static formatISOTimestamp(isoTimestamp = new Date().toISOString()) {
10
+ return luxon_1.DateTime.fromISO(isoTimestamp).setZone(this.TIMEZONE).toFormat(this.FORMAT_DATE_TIME);
11
+ }
12
+ /**
13
+ * @example 13:55:42
14
+ */
15
+ static parseTimeFromEpoch(unixTimestamp = new Date().getTime()) {
16
+ return luxon_1.DateTime.fromMillis(unixTimestamp).setZone(this.TIMEZONE).toFormat(this.FORMAT_TIME);
17
+ }
18
+ /**
19
+ * @example 13:55:42
20
+ */
21
+ static parseTimeFromISO(isoTimestamp = new Date().toISOString()) {
22
+ return luxon_1.DateTime.fromISO(isoTimestamp).setZone(this.TIMEZONE).toFormat(this.FORMAT_TIME);
23
+ }
24
+ }
25
+ exports.DateTimeUtils = DateTimeUtils;
26
+ DateTimeUtils.TIMEZONE = "Europe/Prague";
27
+ // ISO 8601, no fractional seconds (same as moment.defaultFormat)
28
+ DateTimeUtils.FORMAT_DATE_TIME = "yyyy-LL-dd'T'HH:mm:ssZZ";
29
+ DateTimeUtils.FORMAT_TIME = "HH:mm:ss";
30
+ //# sourceMappingURL=DateTimeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeUtils.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/helpers/DateTimeUtils.ts"],"names":[],"mappings":";;;AAAA,2DAA2D;AAE3D,MAAa,aAAa;IAMtB;;OAEG;IACI,MAAM,CAAC,kBAAkB,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpE,OAAO,gBAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,kBAAkB,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;QACjE,OAAO,gBAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChG,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClE,OAAO,gBAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5F,CAAC;;AAzBL,sCA0BC;AAzBkB,sBAAQ,GAAG,eAAe,CAAC;AAC1C,iEAAiE;AAClD,8BAAgB,GAAG,yBAAyB,CAAC;AAC7C,yBAAW,GAAG,UAAU,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { Moment } from "@golemio/core/dist/shared/moment-timezone";
2
+ import { IVehiclePositionsSchedule } from "../..";
3
+ import { IGtfsRunTripCache, VehiclePositionsPositionsModel, VehiclePositionsTripsModel, VehiclePositionsRunsModel } from "../../models";
4
+ import { RunTripsRedisRepository } from "../../workers/runs/tasks/data-access/RunTripsRedisRepository";
5
+ import { IMetroRunInputForProcessing } from "../../workers/runs/tasks/interfaces/IMetroRunInputForProcessing";
6
+ import { IVehiclePositionsRunCommon } from "../../transformations";
7
+ import { IDelayMessage } from "./interfaces/IDelayMessage";
8
+ export declare abstract class AbstractGTFSTripRunManager {
9
+ protected readonly positionsRepository: VehiclePositionsPositionsModel;
10
+ protected readonly tripsRepository: VehiclePositionsTripsModel;
11
+ protected readonly runsRepository: VehiclePositionsRunsModel;
12
+ protected readonly runTripsRedisRepository: RunTripsRedisRepository;
13
+ protected readonly testMode: boolean;
14
+ constructor(positionsRepository: VehiclePositionsPositionsModel, tripsRepository: VehiclePositionsTripsModel, runsRepository: VehiclePositionsRunsModel, runTripsRedisRepository: RunTripsRedisRepository, testMode?: boolean);
15
+ abstract generateDelayMsg(schedule: IGtfsRunTripCache[], input: IVehiclePositionsRunCommon | IMetroRunInputForProcessing): Promise<IDelayMessage>;
16
+ setAndReturnScheduledTrips: (scheduleData: IVehiclePositionsSchedule) => Promise<IGtfsRunTripCache[]>;
17
+ protected getCurrentTripForRun(schedule: IGtfsRunTripCache[], timestampScheduled: Moment): IGtfsRunTripCache | undefined;
18
+ /**
19
+ * Get scheduled trips adjacent to run message timestamp (scheduled)
20
+ * originally based on route id and run number
21
+ */
22
+ protected getAdjacentTrips(schedule: IGtfsRunTripCache[], timestampScheduled: Moment, currentTripId: string | undefined): IGtfsRunTripCache[];
23
+ private isTripAdjacent;
24
+ }
@@ -0,0 +1,73 @@
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.AbstractGTFSTripRunManager = void 0;
16
+ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
17
+ const vehicle_positions_1 = require("../..");
18
+ const DateTimeUtils_1 = require("../DateTimeUtils");
19
+ class AbstractGTFSTripRunManager {
20
+ constructor(positionsRepository, tripsRepository, runsRepository, runTripsRedisRepository, testMode = false) {
21
+ this.positionsRepository = positionsRepository;
22
+ this.tripsRepository = tripsRepository;
23
+ this.runsRepository = runsRepository;
24
+ this.runTripsRedisRepository = runTripsRedisRepository;
25
+ this.testMode = testMode;
26
+ this.setAndReturnScheduledTrips = (scheduleData) => __awaiter(this, void 0, void 0, function* () {
27
+ const { route_id, run_number, msg_last_timestamp } = scheduleData;
28
+ const scheduledTripIds = yield this.runTripsRedisRepository.get(`${route_id}_${run_number}`);
29
+ if (scheduledTripIds === null || scheduledTripIds === void 0 ? void 0 : scheduledTripIds.schedule) {
30
+ return scheduledTripIds.schedule;
31
+ }
32
+ const scheduledTrips = yield this.runsRepository.getScheduledTrips(route_id, run_number, msg_last_timestamp);
33
+ for (const trip of scheduledTrips) {
34
+ // format time to local timezone string
35
+ trip.start_timestamp = DateTimeUtils_1.DateTimeUtils.formatISOTimestamp(trip.start_timestamp);
36
+ trip.end_timestamp = DateTimeUtils_1.DateTimeUtils.formatISOTimestamp(trip.end_timestamp);
37
+ }
38
+ yield this.runTripsRedisRepository.set(`${route_id}_${run_number}`, { schedule: scheduledTrips }, undefined, vehicle_positions_1.VehiclePositionsUtils.getNextExpireTimestamp());
39
+ return scheduledTrips;
40
+ });
41
+ }
42
+ getCurrentTripForRun(schedule, timestampScheduled) {
43
+ let currentTrip = undefined;
44
+ for (const tripCache of schedule) {
45
+ const startTimestamp = new Date(tripCache.start_timestamp);
46
+ const endTimestamp = new Date(tripCache.end_timestamp);
47
+ if (!timestampScheduled.isBetween(startTimestamp, endTimestamp, "second", "[]")) {
48
+ continue;
49
+ }
50
+ if (!currentTrip || startTimestamp.getTime() > new Date(currentTrip.start_timestamp).getTime()) {
51
+ currentTrip = tripCache;
52
+ }
53
+ }
54
+ return currentTrip;
55
+ }
56
+ /**
57
+ * Get scheduled trips adjacent to run message timestamp (scheduled)
58
+ * originally based on route id and run number
59
+ */
60
+ getAdjacentTrips(schedule, timestampScheduled, currentTripId) {
61
+ return schedule.filter((scheduledTrip) => scheduledTrip.trip_id !== currentTripId && this.isTripAdjacent(scheduledTrip, timestampScheduled));
62
+ }
63
+ isTripAdjacent(scheduledTrip, timestampScheduled) {
64
+ const startTimestamp = (0, moment_timezone_1.default)(scheduledTrip.start_timestamp);
65
+ const endTimestamp = (0, moment_timezone_1.default)(scheduledTrip.end_timestamp);
66
+ const leftBound = timestampScheduled.clone().subtract(15, "minutes");
67
+ const rightBound = timestampScheduled.clone().add(60, "minutes");
68
+ return ((leftBound <= endTimestamp && endTimestamp <= timestampScheduled) ||
69
+ (rightBound >= startTimestamp && startTimestamp >= timestampScheduled));
70
+ }
71
+ }
72
+ exports.AbstractGTFSTripRunManager = AbstractGTFSTripRunManager;
73
+ //# sourceMappingURL=AbstractGTFSTripRunManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractGTFSTripRunManager.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { IGtfsRunTripCache } from "../../models";
2
+ import { IVehiclePositionsRunCommon } from "../../transformations";
3
+ import { IDelayMessage } from "./interfaces/IDelayMessage";
4
+ import { AbstractGTFSTripRunManager } from "./AbstractGTFSTripRunManager";
5
+ export declare class GTFSTripCommonRunManager extends AbstractGTFSTripRunManager {
6
+ generateDelayMsg(schedule: IGtfsRunTripCache[], input: IVehiclePositionsRunCommon): Promise<IDelayMessage>;
7
+ private generateDelayMsgFromCurrentTrip;
8
+ private isCurrentTripTracking;
9
+ private updateLastTripsAndPositions;
10
+ private updateTrip;
11
+ }
@@ -12,51 +12,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const integration_engine_1 = require("@golemio/core/dist/integration-engine");
15
+ exports.GTFSTripCommonRunManager = void 0;
16
16
  const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
17
- const const_1 = require("../../../const");
18
- const models_1 = require("../models");
19
- class GTFSTripManager {
20
- constructor(modelPositions, modelTrips, testMode = false) {
21
- this.modelPositions = modelPositions;
22
- this.modelTrips = modelTrips;
23
- this.testMode = testMode;
24
- }
25
- generateDelayMsg(actualStopTimestampScheduled, schedule, input) {
17
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
18
+ const const_1 = require("../../../../const");
19
+ const models_1 = require("../../models");
20
+ const AbstractGTFSTripRunManager_1 = require("./AbstractGTFSTripRunManager");
21
+ class GTFSTripCommonRunManager extends AbstractGTFSTripRunManager_1.AbstractGTFSTripRunManager {
22
+ generateDelayMsg(schedule, input) {
26
23
  return __awaiter(this, void 0, void 0, function* () {
27
- const asts = (0, moment_timezone_1.default)(+actualStopTimestampScheduled);
24
+ const timestampScheduled = (0, moment_timezone_1.default)(Number(input.run_message.actual_stop_timestamp_scheduled));
25
+ const currentTrip = this.getCurrentTripForRun(schedule, timestampScheduled);
28
26
  let delayMsg = {
29
27
  updatedTrips: [],
30
28
  positions: [],
31
- schedule: schedule,
29
+ schedule,
32
30
  };
33
- // current gtfs trip for run
34
- let currentTrip = undefined;
35
- for (const tripCache of schedule) {
36
- const startTimestamp = new Date(tripCache.start_timestamp);
37
- const endTimestamp = new Date(tripCache.end_timestamp);
38
- if (!asts.isBetween(startTimestamp, endTimestamp, "second", "[]")) {
39
- continue;
40
- }
41
- if (!currentTrip || +startTimestamp > +new Date(currentTrip.start_timestamp)) {
42
- currentTrip = tripCache;
43
- }
44
- }
45
- if (currentTrip && currentTrip.trip_id) {
46
- delayMsg = yield this.generateDelayMsgFromCurrentTrip(delayMsg, currentTrip, asts, input);
31
+ if (currentTrip === null || currentTrip === void 0 ? void 0 : currentTrip.trip_id) {
32
+ delayMsg = yield this.generateDelayMsgFromCurrentTrip(delayMsg, currentTrip, timestampScheduled, input);
47
33
  }
48
34
  else {
49
- integration_engine_1.log.warn(`updateRunsGTFSTripId: could not find current gtfsTrip for run: ${JSON.stringify(input)}`);
35
+ integration_engine_1.log.warn(`generateDelayMsg: could not find current gtfsTrip for common run: ${JSON.stringify(input)}`);
50
36
  }
51
37
  // last/next gtfs trip for run
52
- return this.updateLastTripsAndPositions(schedule, asts, currentTrip === null || currentTrip === void 0 ? void 0 : currentTrip.trip_id, input, delayMsg);
38
+ return this.updateLastTripsAndPositions(schedule, timestampScheduled, currentTrip === null || currentTrip === void 0 ? void 0 : currentTrip.trip_id, input, delayMsg);
53
39
  });
54
40
  }
55
- generateDelayMsgFromCurrentTrip(delayMsg, gtfsCurrentTrip, asts, input) {
41
+ generateDelayMsgFromCurrentTrip(delayMsg, gtfsCurrentTrip, timestampScheduled, input) {
56
42
  return __awaiter(this, void 0, void 0, function* () {
57
43
  const msgTimestamp = input.run_message.msg_timestamp;
58
44
  const event = input.run_message.events;
59
- const isCurrentTripTracking = this.isCurrentTripTracking(gtfsCurrentTrip, event, asts, msgTimestamp);
45
+ const isCurrentTripTracking = this.isCurrentTripTracking(gtfsCurrentTrip, event, timestampScheduled, msgTimestamp);
60
46
  const { trip, position } = yield this.updateTrip(input, gtfsCurrentTrip, isCurrentTripTracking);
61
47
  delayMsg.updatedTrips.push(trip);
62
48
  if (this.testMode)
@@ -64,7 +50,7 @@ class GTFSTripManager {
64
50
  return delayMsg;
65
51
  });
66
52
  }
67
- isCurrentTripTracking(gtfsCurrentTrip, event, asts, msgTimestamp) {
53
+ isCurrentTripTracking(gtfsCurrentTrip, event, timestampScheduled, msgTimestamp) {
68
54
  var _a;
69
55
  return (
70
56
  // tram is always on track while pushes messages only on stops
@@ -72,15 +58,15 @@ class GTFSTripManager {
72
58
  // when bus announces DEPARTURE TCP event, it means that trip is on track
73
59
  (gtfsCurrentTrip.route_type === models_1.GTFSRouteTypeEnum.BUS && event === const_1.TCPEventEnum.DEPARTURED) ||
74
60
  // when trip has set first stop time, and message timestamp is after scheduled start, set as tracking
75
- (asts.isSame((0, moment_timezone_1.default)(gtfsCurrentTrip.start_timestamp)) &&
61
+ (timestampScheduled.isSame((0, moment_timezone_1.default)(gtfsCurrentTrip.start_timestamp)) &&
76
62
  (0, moment_timezone_1.default)(msgTimestamp).isSameOrAfter((0, moment_timezone_1.default)(gtfsCurrentTrip.start_timestamp))) ||
77
63
  // of course when trip announcing some next stop time in schedule, then set as tracking
78
- asts.isAfter((0, moment_timezone_1.default)(gtfsCurrentTrip.start_timestamp)))) !== null && _a !== void 0 ? _a : false);
64
+ timestampScheduled.isAfter((0, moment_timezone_1.default)(gtfsCurrentTrip.start_timestamp)))) !== null && _a !== void 0 ? _a : false);
79
65
  }
80
- updateLastTripsAndPositions(schedule, asts, currentTripId, input, delayMsg) {
66
+ updateLastTripsAndPositions(schedule, timestampScheduled, currentTripId, input, delayMsg) {
81
67
  return __awaiter(this, void 0, void 0, function* () {
82
- const gtfsLastNextTrips = this.getLastNextTrips(schedule, asts, currentTripId);
83
- for (const gtfsTrip of gtfsLastNextTrips) {
68
+ const gtfsAdjacentTrips = this.getAdjacentTrips(schedule, timestampScheduled, currentTripId);
69
+ for (const gtfsTrip of gtfsAdjacentTrips) {
84
70
  const { trip, position } = yield this.updateTrip(input, gtfsTrip, false);
85
71
  delayMsg.updatedTrips.push(trip);
86
72
  if (this.testMode)
@@ -89,20 +75,13 @@ class GTFSTripManager {
89
75
  return delayMsg;
90
76
  });
91
77
  }
92
- getLastNextTrips(schedule, asts, currentTripId) {
93
- return schedule.filter((el) => {
94
- return (((asts.clone().subtract(15, "minutes") <= (0, moment_timezone_1.default)(el.end_timestamp) && (0, moment_timezone_1.default)(el.end_timestamp) <= asts) ||
95
- (asts <= (0, moment_timezone_1.default)(el.start_timestamp) && (0, moment_timezone_1.default)(el.start_timestamp) <= asts.clone().add(60, "minutes"))) &&
96
- el.trip_id !== currentTripId);
97
- });
98
- }
99
78
  updateTrip(input, gtfsTrip, isTripTracking) {
100
79
  return __awaiter(this, void 0, void 0, function* () {
101
- const trip = yield this.modelTrips.upsertRunTrip(input, gtfsTrip);
102
- const position = yield this.modelPositions.upsertRunPosition(input, gtfsTrip, isTripTracking);
80
+ const trip = yield this.tripsRepository.upsertCommonRunTrip(input, gtfsTrip);
81
+ const position = yield this.positionsRepository.upsertCommonRunPosition(input, gtfsTrip, isTripTracking);
103
82
  return { trip, position };
104
83
  });
105
84
  }
106
85
  }
107
- exports.default = GTFSTripManager;
108
- //# sourceMappingURL=GtfsTripManager.js.map
86
+ exports.GTFSTripCommonRunManager = GTFSTripCommonRunManager;
87
+ //# sourceMappingURL=GTFSTripCommonRunManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GTFSTripCommonRunManager.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripCommonRunManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { IGtfsRunTripCache } from "../../models";
2
+ import { IDelayMessage } from "./interfaces/IDelayMessage";
3
+ import { AbstractGTFSTripRunManager } from "./AbstractGTFSTripRunManager";
4
+ import { IMetroRunInputForProcessing } from "../../workers/runs/tasks/interfaces/IMetroRunInputForProcessing";
5
+ export declare class GTFSTripMetroRunManager extends AbstractGTFSTripRunManager {
6
+ generateDelayMsg(schedule: IGtfsRunTripCache[], input: IMetroRunInputForProcessing): Promise<IDelayMessage>;
7
+ private generateDelayMsgFromCurrentTrip;
8
+ private updateLastTripsAndPositions;
9
+ private updateTrip;
10
+ }
@@ -0,0 +1,70 @@
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.GTFSTripMetroRunManager = void 0;
16
+ const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
17
+ const integration_engine_1 = require("@golemio/core/dist/integration-engine");
18
+ const AbstractGTFSTripRunManager_1 = require("./AbstractGTFSTripRunManager");
19
+ class GTFSTripMetroRunManager extends AbstractGTFSTripRunManager_1.AbstractGTFSTripRunManager {
20
+ generateDelayMsg(schedule, input) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ const timestampScheduled = (0, moment_timezone_1.default)(input.timestampScheduled);
23
+ const currentTrip = this.getCurrentTripForRun(schedule, timestampScheduled);
24
+ let delayMsg = {
25
+ updatedTrips: [],
26
+ positions: [],
27
+ schedule,
28
+ };
29
+ if (currentTrip === null || currentTrip === void 0 ? void 0 : currentTrip.trip_id) {
30
+ delayMsg = yield this.generateDelayMsgFromCurrentTrip(delayMsg, currentTrip, input);
31
+ }
32
+ else {
33
+ integration_engine_1.log.warn(`generateDelayMsg: could not find current gtfsTrip for metro run: ${JSON.stringify(input)}`);
34
+ }
35
+ // last/next gtfs trip for run
36
+ return this.updateLastTripsAndPositions(schedule, timestampScheduled, currentTrip === null || currentTrip === void 0 ? void 0 : currentTrip.trip_id, input, delayMsg);
37
+ });
38
+ }
39
+ generateDelayMsgFromCurrentTrip(delayMsg, gtfsCurrentTrip, input) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ const isCurrentTripTracking = true;
42
+ const { trip, position } = yield this.updateTrip(input, gtfsCurrentTrip, isCurrentTripTracking);
43
+ delayMsg.updatedTrips.push(trip);
44
+ if (this.testMode)
45
+ delayMsg.positions.push(position);
46
+ return delayMsg;
47
+ });
48
+ }
49
+ updateLastTripsAndPositions(schedule, timestampScheduled, currentTripId, input, delayMsg) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const gtfsAdjacentTrips = this.getAdjacentTrips(schedule, timestampScheduled, currentTripId);
52
+ for (const gtfsTrip of gtfsAdjacentTrips) {
53
+ const { trip, position } = yield this.updateTrip(input, gtfsTrip, false);
54
+ delayMsg.updatedTrips.push(trip);
55
+ if (this.testMode)
56
+ delayMsg.positions.push(position);
57
+ }
58
+ return delayMsg;
59
+ });
60
+ }
61
+ updateTrip(input, gtfsTrip, isTripTracking) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const trip = yield this.tripsRepository.upsertMetroRunTrip(input, gtfsTrip);
64
+ const position = yield this.positionsRepository.upsertMetroRunPosition(input, gtfsTrip, isTripTracking);
65
+ return { trip, position };
66
+ });
67
+ }
68
+ }
69
+ exports.GTFSTripMetroRunManager = GTFSTripMetroRunManager;
70
+ //# sourceMappingURL=GTFSTripMetroRunManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GTFSTripMetroRunManager.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripMetroRunManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gGAA2E;AAC3E,8EAA4D;AAG5D,6EAA0E;AAG1E,MAAa,uBAAwB,SAAQ,uDAA0B;IACtD,gBAAgB,CAAC,QAA6B,EAAE,KAAkC;;YAC3F,MAAM,kBAAkB,GAAG,IAAA,yBAAM,EAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YAC5E,IAAI,QAAQ,GAAkB;gBAC1B,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,EAAE;gBACb,QAAQ;aACX,CAAC;YAEF,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE;gBACtB,QAAQ,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;aACvF;iBAAM;gBACH,wBAAG,CAAC,IAAI,CAAC,oEAAoE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACzG;YAED,8BAA8B;YAC9B,OAAO,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjH,CAAC;KAAA;IAEa,+BAA+B,CACzC,QAAuB,EACvB,eAAkC,EAClC,KAAkC;;YAElC,MAAM,qBAAqB,GAAG,IAAI,CAAC;YACnC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAAC;YAEhG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,QAAQ;gBAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAErD,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAEa,2BAA2B,CACrC,QAA6B,EAC7B,kBAA0B,EAC1B,aAAiC,EACjC,KAAkC,EAClC,QAAuB;;YAEvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC;YAE7F,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE;gBACtC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAEzE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,IAAI,CAAC,QAAQ;oBAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACxD;YAED,OAAO,QAAQ,CAAC;QACpB,CAAC;KAAA;IAEa,UAAU,CAAC,KAAkC,EAAE,QAA2B,EAAE,cAAuB;;YAC7G,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;YAExG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC9B,CAAC;KAAA;CACJ;AA3DD,0DA2DC"}
@@ -0,0 +1,8 @@
1
+ import { AbstractGTFSTripRunManager } from "./AbstractGTFSTripRunManager";
2
+ export declare enum GTFSTripRunType {
3
+ Common = 0,
4
+ Metro = 1
5
+ }
6
+ export declare class GTFSTripRunManagerFactory {
7
+ static create(runType: GTFSTripRunType, ...params: ConstructorParameters<typeof AbstractGTFSTripRunManager>): AbstractGTFSTripRunManager;
8
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GTFSTripRunManagerFactory = exports.GTFSTripRunType = void 0;
4
+ const GTFSTripCommonRunManager_1 = require("./GTFSTripCommonRunManager");
5
+ const GTFSTripMetroRunManager_1 = require("./GTFSTripMetroRunManager");
6
+ var GTFSTripRunType;
7
+ (function (GTFSTripRunType) {
8
+ GTFSTripRunType[GTFSTripRunType["Common"] = 0] = "Common";
9
+ GTFSTripRunType[GTFSTripRunType["Metro"] = 1] = "Metro";
10
+ })(GTFSTripRunType = exports.GTFSTripRunType || (exports.GTFSTripRunType = {}));
11
+ class GTFSTripRunManagerFactory {
12
+ static create(runType, ...params) {
13
+ switch (runType) {
14
+ case GTFSTripRunType.Common:
15
+ default:
16
+ return new GTFSTripCommonRunManager_1.GTFSTripCommonRunManager(...params);
17
+ case GTFSTripRunType.Metro:
18
+ return new GTFSTripMetroRunManager_1.GTFSTripMetroRunManager(...params);
19
+ }
20
+ }
21
+ }
22
+ exports.GTFSTripRunManagerFactory = GTFSTripRunManagerFactory;
23
+ //# sourceMappingURL=GTFSTripRunManagerFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GTFSTripRunManagerFactory.js","sourceRoot":"","sources":["../../../../../src/integration-engine/vehicle-positions/helpers/gtfs-trip-run/GTFSTripRunManagerFactory.ts"],"names":[],"mappings":";;;AACA,yEAAsE;AACtE,uEAAoE;AAEpE,IAAY,eAGX;AAHD,WAAY,eAAe;IACvB,yDAAM,CAAA;IACN,uDAAK,CAAA;AACT,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAED,MAAa,yBAAyB;IAC3B,MAAM,CAAC,MAAM,CAChB,OAAwB,EACxB,GAAG,MAAgE;QAEnE,QAAQ,OAAO,EAAE;YACb,KAAK,eAAe,CAAC,MAAM,CAAC;YAC5B;gBACI,OAAO,IAAI,mDAAwB,CAAC,GAAG,MAAM,CAAC,CAAC;YAEnD,KAAK,eAAe,CAAC,KAAK;gBACtB,OAAO,IAAI,iDAAuB,CAAC,GAAG,MAAM,CAAC,CAAC;SACrD;IACL,CAAC;CACJ;AAdD,8DAcC"}
@@ -0,0 +1,6 @@
1
+ import { IGtfsRunTripCache, IUpdateDelayRunTripsData } from "../../../models";
2
+ export interface IDelayMessage {
3
+ updatedTrips: IUpdateDelayRunTripsData[];
4
+ positions: any[];
5
+ schedule?: IGtfsRunTripCache[];
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IDelayMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IDelayMessage.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/helpers/gtfs-trip-run/interfaces/IDelayMessage.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import { IVehiclePositionsRunCommon } from "../transformations";
2
+ import { IMetroRunInputForProcessing } from "../workers/runs/tasks/interfaces/IMetroRunInputForProcessing";
2
3
  import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
3
4
  import { Validator } from "@golemio/core/dist/shared/golemio-validator";
4
5
  import Sequelize from "@golemio/core/dist/shared/sequelize";
@@ -58,7 +59,8 @@ export declare class VehiclePositionsPositionsModel extends PostgresModel implem
58
59
  constructor();
59
60
  getPositionsForUpdateDelay: (tripIds: string[]) => Promise<ITripPositions[]>;
60
61
  bulkUpdate: (data: any[]) => Promise<any>;
61
- upsertRunPosition: ({ run, run_message }: IVehiclePositionsRunCommon, gtfsTrip: IGtfsRunTripCache, isCurrent?: boolean) => Promise<any>;
62
+ upsertCommonRunPosition: ({ run, run_message }: IVehiclePositionsRunCommon, gtfsTrip: IGtfsRunTripCache, isCurrent?: boolean) => Promise<any>;
63
+ upsertMetroRunPosition: (runInput: IMetroRunInputForProcessing, gtfsTrip: IGtfsRunTripCache, isCurrent?: boolean) => Promise<any>;
62
64
  deleteNHoursOldData: (hours: number) => Promise<number>;
63
65
  createNotPublic: (input: IVehiclePositionsRunCommon, id: string) => Promise<any>;
64
66
  }
@@ -194,15 +194,26 @@ class VehiclePositionsPositionsModel extends models_1.PostgresModel {
194
194
  return acc;
195
195
  }, { updated: [] });
196
196
  });
197
- this.upsertRunPosition = ({ run, run_message }, gtfsTrip, isCurrent = true) => __awaiter(this, void 0, void 0, function* () {
197
+ this.upsertCommonRunPosition = ({ run, run_message }, gtfsTrip, isCurrent = true) => __awaiter(this, void 0, void 0, function* () {
198
198
  try {
199
- const [record] = yield this.sequelizeModel.upsert(VPPositionsMapper_1.default.mapToDto(run_message, isCurrent, gtfsTrip, run), {
199
+ const [record] = yield this.sequelizeModel.upsert(VPPositionsMapper_1.default.mapCommonRunToDto(run_message, isCurrent, gtfsTrip, run), {
200
200
  returning: true,
201
201
  });
202
202
  return record.get({ plain: true });
203
203
  }
204
204
  catch (err) {
205
- throw new golemio_errors_1.CustomError("upsertRunPosition: Error while saving to database.", true, this.name, 4001, err);
205
+ throw new golemio_errors_1.CustomError("upsertCommonRunPosition: Error while saving to database.", true, this.name, 4001, err);
206
+ }
207
+ });
208
+ this.upsertMetroRunPosition = (runInput, gtfsTrip, isCurrent = true) => __awaiter(this, void 0, void 0, function* () {
209
+ try {
210
+ const [record] = yield this.sequelizeModel.upsert(VPPositionsMapper_1.default.mapMetroRunToDto(isCurrent, gtfsTrip, runInput), {
211
+ returning: true,
212
+ });
213
+ return record.get({ plain: true });
214
+ }
215
+ catch (err) {
216
+ throw new golemio_errors_1.CustomError("upsertMetroRunPosition: Error while saving to database.", true, this.name, 4001, err);
206
217
  }
207
218
  });
208
219
  this.deleteNHoursOldData = (hours) => __awaiter(this, void 0, void 0, function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"VehiclePositionsPositionsModel.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/models/VehiclePositionsPositionsModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VehiclePositionsPositionsModel.js","sourceRoot":"","sources":["../../../../src/integration-engine/vehicle-positions/models/VehiclePositionsPositionsModel.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Validator } from "@golemio/core/dist/shared/golemio-validator";
2
2
  import Sequelize from "@golemio/core/dist/shared/sequelize";
3
3
  import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
4
4
  import { IVehiclePositionsRunCommon } from "../transformations";
5
+ import { IMetroRunInputForProcessing } from "../workers/runs/tasks/interfaces/IMetroRunInputForProcessing";
5
6
  import { IGtfsRunTripCache } from "./VehiclePositionsRunsModel";
6
7
  import { IPropagateDelay } from "../VehiclePositionsInterfaces";
7
8
  export interface IGTFSRtFeedEntity {
@@ -144,7 +145,8 @@ export declare class VehiclePositionsTripsModel extends PostgresModel implements
144
145
  findGTFSTripId: (trip: IUpdateGTFSTripIdData) => Promise<IUpdateDelayTripsIdsData | IUpdateDelayTripsIdsData[] | undefined>;
145
146
  deleteNHoursOldData: (hours: number) => Promise<number>;
146
147
  private deduceTimestamps;
147
- upsertRunTrip: ({ run }: IVehiclePositionsRunCommon, gtfsTrip: IGtfsRunTripCache) => Promise<IUpdateDelayRunTripsData>;
148
+ upsertCommonRunTrip: ({ run }: IVehiclePositionsRunCommon, gtfsTrip: IGtfsRunTripCache) => Promise<IUpdateDelayRunTripsData>;
149
+ upsertMetroRunTrip: (runInput: IMetroRunInputForProcessing, gtfsTrip: IGtfsRunTripCache) => Promise<IUpdateDelayRunTripsData>;
148
150
  getPropagateDelayTripsWithPositions: (data: IPropagateDelay) => Promise<any[]>;
149
151
  hasOne: (model: any, options: any) => any;
150
152
  findAll: (options: any) => Promise<any>;
@@ -387,15 +387,26 @@ class VehiclePositionsTripsModel extends models_1.PostgresModel {
387
387
  endTimestamp,
388
388
  };
389
389
  };
390
- this.upsertRunTrip = ({ run }, gtfsTrip) => __awaiter(this, void 0, void 0, function* () {
390
+ this.upsertCommonRunTrip = ({ run }, gtfsTrip) => __awaiter(this, void 0, void 0, function* () {
391
391
  try {
392
- const [record] = yield this.sequelizeModel.upsert(VPTripsMapper_1.default.mapToDto(gtfsTrip, run), {
392
+ const [record] = yield this.sequelizeModel.upsert(VPTripsMapper_1.default.mapCommonRunToDto(gtfsTrip, run), {
393
393
  returning: true,
394
394
  });
395
395
  return record.get({ plain: true });
396
396
  }
397
397
  catch (err) {
398
- throw new golemio_errors_1.CustomError("upsertRunTrip: Error while saving to database.", true, this.name, 4001, err);
398
+ throw new golemio_errors_1.CustomError("upsertCommonRunTrip: Error while saving to database.", true, this.name, 4001, err);
399
+ }
400
+ });
401
+ this.upsertMetroRunTrip = (runInput, gtfsTrip) => __awaiter(this, void 0, void 0, function* () {
402
+ try {
403
+ const [record] = yield this.sequelizeModel.upsert(VPTripsMapper_1.default.mapMetroRunToDto(gtfsTrip, runInput), {
404
+ returning: true,
405
+ });
406
+ return record.get({ plain: true });
407
+ }
408
+ catch (err) {
409
+ throw new golemio_errors_1.CustomError("upsertMetroRunTrip: Error while saving to database.", true, this.name, 4001, err);
399
410
  }
400
411
  });
401
412
  this.getPropagateDelayTripsWithPositions = (data) => __awaiter(this, void 0, void 0, function* () {