@golemio/pid 2.6.6 → 2.6.7-dev.834780584
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/example/00_clear_test_data.sql +4 -4
- package/db/example/03_ropidgtfs_dump.sql +10 -1
- package/db/example/14_nightDelays.sql +16 -8
- package/db/migrations/postgresql/20230327121511-departure-view.js +53 -0
- package/db/migrations/postgresql/sqls/20220915123941-partitioned-departures-down.sql +2 -0
- package/db/migrations/postgresql/sqls/20230307124639-positions-internal-down.sql +1 -1
- package/db/migrations/postgresql/sqls/20230327121511-departure-view-down.sql +81 -0
- package/db/migrations/postgresql/sqls/20230327121511-departure-view-up.sql +37 -0
- package/dist/integration-engine/queueDefinitions.js +10 -0
- package/dist/integration-engine/queueDefinitions.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.d.ts +13 -7
- package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.js +50 -45
- package/dist/integration-engine/ropid-gtfs/RopidGTFSMetadataModel.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.d.ts +4 -3
- package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js +50 -18
- package/dist/integration-engine/ropid-gtfs/RopidGTFSWorker.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/data-access/{DeparturesRepository.d.ts → precomputed/DeparturesRepository.d.ts} +2 -1
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +132 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/MinMaxStopSequencesRepository.d.ts +9 -0
- package/dist/integration-engine/ropid-gtfs/{RopidGTFSMinMaxSequencesModel.js → data-access/precomputed/MinMaxStopSequencesRepository.js} +34 -33
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/MinMaxStopSequencesRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/ServicesCalendarRepository.d.ts +9 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/ServicesCalendarRepository.js +135 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/ServicesCalendarRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripScheduleRepository.d.ts +11 -0
- package/dist/integration-engine/ropid-gtfs/{RopidGTFSScheduledTripsModel.js → data-access/precomputed/TripScheduleRepository.js} +27 -26
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripScheduleRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/index.d.ts +4 -0
- package/dist/integration-engine/ropid-gtfs/data-access/{index.js → precomputed/index.js} +3 -0
- package/dist/integration-engine/ropid-gtfs/data-access/precomputed/index.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/helpers/SourceTableSuffixEnum.d.ts +5 -0
- package/dist/integration-engine/ropid-gtfs/helpers/SourceTableSuffixEnum.js +10 -0
- package/dist/integration-engine/ropid-gtfs/helpers/SourceTableSuffixEnum.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/index.d.ts +0 -3
- package/dist/integration-engine/ropid-gtfs/index.js +0 -3
- package/dist/integration-engine/ropid-gtfs/index.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/utils.js +5 -4
- package/dist/integration-engine/ropid-gtfs/utils.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.js +3 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +18 -18
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
- package/dist/output-gateway/departure-boards/DepartureBoardsRouter.js +1 -1
- package/dist/output-gateway/pid/data-access/DeparturesRepository.js +0 -6
- package/dist/output-gateway/pid/data-access/DeparturesRepository.js.map +1 -1
- package/dist/output-gateway/pid/middleware/checkTimeFromMiddleware.js +2 -2
- package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.d.ts +3 -3
- package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js +15 -15
- package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.d.ts +0 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js +5 -18
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/models/precomputed/interfaces/IDeparturesModel.d.ts +0 -1
- package/docs/implementation_documentation.md +30 -10
- package/docs/openapi-output.yaml +1 -1
- package/package.json +4 -3
- package/db/example/99_precomputed_tables.sql +0 -169
- package/dist/integration-engine/ropid-gtfs/RopidGTFSMinMaxSequencesModel.d.ts +0 -19
- package/dist/integration-engine/ropid-gtfs/RopidGTFSMinMaxSequencesModel.js.map +0 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.d.ts +0 -21
- package/dist/integration-engine/ropid-gtfs/RopidGTFSScheduledTripsModel.js.map +0 -1
- package/dist/integration-engine/ropid-gtfs/RopidGTFSServicesFirst14daysModel.d.ts +0 -19
- package/dist/integration-engine/ropid-gtfs/RopidGTFSServicesFirst14daysModel.js +0 -142
- package/dist/integration-engine/ropid-gtfs/RopidGTFSServicesFirst14daysModel.js.map +0 -1
- package/dist/integration-engine/ropid-gtfs/data-access/DeparturesRepository.js +0 -162
- package/dist/integration-engine/ropid-gtfs/data-access/DeparturesRepository.js.map +0 -1
- package/dist/integration-engine/ropid-gtfs/data-access/index.d.ts +0 -1
- package/dist/integration-engine/ropid-gtfs/data-access/index.js.map +0 -1
package/dist/integration-engine/ropid-gtfs/data-access/precomputed/ServicesCalendarRepository.js
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ServicesCalendarRepository = void 0;
|
|
13
|
+
const utils_1 = require("../../utils");
|
|
14
|
+
const ropid_gtfs_1 = require("../../../../schema-definitions/ropid-gtfs");
|
|
15
|
+
const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
|
|
16
|
+
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
17
|
+
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
18
|
+
const SourceTableSuffixEnum_1 = require("../../helpers/SourceTableSuffixEnum");
|
|
19
|
+
class ServicesCalendarRepository extends models_1.PostgresModel {
|
|
20
|
+
constructor() {
|
|
21
|
+
super("ServicesCalendarRepository", {
|
|
22
|
+
outputSequelizeAttributes: ropid_gtfs_1.RopidGTFS.servicesCalendar.outputSequelizeAttributes,
|
|
23
|
+
pgTableName: ropid_gtfs_1.RopidGTFS.servicesCalendar.pgTableName,
|
|
24
|
+
pgSchema: ropid_gtfs_1.RopidGTFS.pgSchema,
|
|
25
|
+
savingType: "insertOnly",
|
|
26
|
+
attributesToRemove: ["id", "created_at", "updated_at"],
|
|
27
|
+
}, new golemio_validator_1.JSONSchemaValidator("ServicesCalendarRepositoryValidator", ropid_gtfs_1.RopidGTFS.servicesCalendar.outputJsonSchema));
|
|
28
|
+
this.createAndPopulate = (sourceTableSuffix) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const sql = `
|
|
30
|
+
SELECT
|
|
31
|
+
dates.date,
|
|
32
|
+
date_part('day', dates.date - to_char(timezone('Europe/Prague', now()), 'YYYY-MM-DD')::timestamp) AS day_diff,
|
|
33
|
+
service_id
|
|
34
|
+
FROM (
|
|
35
|
+
SELECT
|
|
36
|
+
date_trunc('day', dd.dd)::date AS date
|
|
37
|
+
FROM generate_series(
|
|
38
|
+
( SELECT (CURRENT_TIMESTAMP - interval '1 day') )::date,
|
|
39
|
+
( SELECT (CURRENT_TIMESTAMP + interval '2 days') )::date,
|
|
40
|
+
'1 day'
|
|
41
|
+
) dd(dd)) dates
|
|
42
|
+
INNER JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_calendar${sourceTableSuffix} calendar ON ((1 = 1))
|
|
43
|
+
WHERE (
|
|
44
|
+
(
|
|
45
|
+
dates.date >= "start_date"::date
|
|
46
|
+
AND dates.date <= end_date::date
|
|
47
|
+
AND (
|
|
48
|
+
(
|
|
49
|
+
btrim(to_char(dates.date::timestamptz, 'day')) = 'monday'
|
|
50
|
+
AND monday = 1
|
|
51
|
+
) OR (
|
|
52
|
+
btrim(to_char(dates.date::timestamptz, 'day')) = 'tuesday'
|
|
53
|
+
AND tuesday = 1
|
|
54
|
+
) OR (
|
|
55
|
+
btrim(to_char(dates.date::timestamptz, 'day')) = 'wednesday'
|
|
56
|
+
AND wednesday = 1
|
|
57
|
+
) OR (
|
|
58
|
+
btrim(to_char(dates.date::timestamptz, 'day')) = 'thursday'
|
|
59
|
+
AND thursday = 1
|
|
60
|
+
) OR (
|
|
61
|
+
btrim(to_char(dates.date::timestamptz, 'day')) = 'friday'
|
|
62
|
+
AND friday = 1
|
|
63
|
+
) OR (
|
|
64
|
+
btrim(to_char(dates.date::timestamptz, 'day')) = 'saturday'
|
|
65
|
+
AND saturday = 1
|
|
66
|
+
) OR (
|
|
67
|
+
btrim(to_char(dates.date::timestamptz, 'day')) = 'sunday'
|
|
68
|
+
AND sunday = 1
|
|
69
|
+
)
|
|
70
|
+
) AND (
|
|
71
|
+
NOT service_id IN (
|
|
72
|
+
SELECT service_id
|
|
73
|
+
FROM "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_calendar_dates${sourceTableSuffix} calendar_dates
|
|
74
|
+
WHERE (
|
|
75
|
+
exception_type = 2
|
|
76
|
+
AND dates.date = calendar_dates.date::date
|
|
77
|
+
)
|
|
78
|
+
)
|
|
79
|
+
)) OR service_id IN (
|
|
80
|
+
SELECT service_id
|
|
81
|
+
FROM "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_calendar_dates${sourceTableSuffix} calendar_dates
|
|
82
|
+
WHERE
|
|
83
|
+
calendar_dates.exception_type = 1
|
|
84
|
+
AND dates.date = calendar_dates.date::date
|
|
85
|
+
)
|
|
86
|
+
)
|
|
87
|
+
ORDER BY dates.date
|
|
88
|
+
`;
|
|
89
|
+
try {
|
|
90
|
+
const tmpTable = ropid_gtfs_1.RopidGTFS.servicesCalendar.pgTableName + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp;
|
|
91
|
+
yield this.sequelizeModel.sequelize.query(`DROP TABLE IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable};
|
|
92
|
+
CREATE TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable} (
|
|
93
|
+
LIKE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${ropid_gtfs_1.RopidGTFS.servicesCalendar.pgTableName}
|
|
94
|
+
);
|
|
95
|
+
INSERT INTO "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable} ${sql};`);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
helpers_1.log.error(err);
|
|
99
|
+
throw err;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
this.replaceByTmp = (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
103
|
+
try {
|
|
104
|
+
const pgTableName = ropid_gtfs_1.RopidGTFS.servicesCalendar.pgTableName;
|
|
105
|
+
const tableNameTmp = pgTableName + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp;
|
|
106
|
+
const tableNameActual = pgTableName + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Actual;
|
|
107
|
+
const indexQuery = (0, utils_1.buildAlterIndexQuery)(ropid_gtfs_1.RopidGTFS.servicesCalendar.modelIndexOptions);
|
|
108
|
+
yield this.sequelizeModel.sequelize.query(`
|
|
109
|
+
LOCK "${ropid_gtfs_1.RopidGTFS.pgSchema}".${pgTableName} IN EXCLUSIVE MODE;
|
|
110
|
+
ALTER TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameActual} NO INHERIT "${ropid_gtfs_1.RopidGTFS.pgSchema}".${pgTableName};
|
|
111
|
+
DROP TABLE IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameActual};
|
|
112
|
+
${indexQuery}
|
|
113
|
+
ALTER TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameTmp} RENAME TO ${tableNameActual};
|
|
114
|
+
ALTER TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameActual} INHERIT "${ropid_gtfs_1.RopidGTFS.pgSchema}".${pgTableName};
|
|
115
|
+
`, { transaction });
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
helpers_1.log.error(err);
|
|
119
|
+
throw err;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
this.createIndexes = () => __awaiter(this, void 0, void 0, function* () {
|
|
123
|
+
try {
|
|
124
|
+
const indexQuery = (0, utils_1.buildCreateIndexQuery)(ropid_gtfs_1.RopidGTFS.servicesCalendar.pgTableName, ropid_gtfs_1.RopidGTFS.servicesCalendar.modelIndexOptions);
|
|
125
|
+
yield this.sequelizeModel.sequelize.query(indexQuery);
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
helpers_1.log.error(err);
|
|
129
|
+
throw err;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.ServicesCalendarRepository = ServicesCalendarRepository;
|
|
135
|
+
//# sourceMappingURL=ServicesCalendarRepository.js.map
|
package/dist/integration-engine/ropid-gtfs/data-access/precomputed/ServicesCalendarRepository.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServicesCalendarRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/ServicesCalendarRepository.ts"],"names":[],"mappings":"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"}
|
package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripScheduleRepository.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IModel, PostgresModel } from "@golemio/core/dist/integration-engine/models";
|
|
2
|
+
import { FindOptions, Transaction } from "@golemio/core/dist/shared/sequelize";
|
|
3
|
+
import { SourceTableSuffixEnum } from "../../helpers/SourceTableSuffixEnum";
|
|
4
|
+
import { IGtfsRunTripCache } from "../../interfaces/IGtfsRunTripCache";
|
|
5
|
+
export declare class TripScheduleRepository extends PostgresModel implements IModel {
|
|
6
|
+
constructor();
|
|
7
|
+
findAll: (options: FindOptions) => Promise<IGtfsRunTripCache[]>;
|
|
8
|
+
createAndPopulate: (sourceTableSuffix: SourceTableSuffixEnum) => Promise<void>;
|
|
9
|
+
replaceByTmp: (transaction: Transaction) => Promise<void>;
|
|
10
|
+
createIndexes: () => Promise<void>;
|
|
11
|
+
}
|
|
@@ -9,25 +9,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
13
|
-
const utils_1 = require("
|
|
14
|
-
const ropid_gtfs_1 = require("
|
|
12
|
+
exports.TripScheduleRepository = void 0;
|
|
13
|
+
const utils_1 = require("../../utils");
|
|
14
|
+
const ropid_gtfs_1 = require("../../../../schema-definitions/ropid-gtfs");
|
|
15
15
|
const helpers_1 = require("@golemio/core/dist/integration-engine/helpers");
|
|
16
16
|
const models_1 = require("@golemio/core/dist/integration-engine/models");
|
|
17
17
|
const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
|
|
18
|
-
|
|
18
|
+
const SourceTableSuffixEnum_1 = require("../../helpers/SourceTableSuffixEnum");
|
|
19
|
+
class TripScheduleRepository extends models_1.PostgresModel {
|
|
19
20
|
constructor() {
|
|
20
|
-
super(
|
|
21
|
-
outputSequelizeAttributes: ropid_gtfs_1.RopidGTFS.
|
|
22
|
-
pgTableName: ropid_gtfs_1.RopidGTFS.
|
|
21
|
+
super("TripScheduleRepository", {
|
|
22
|
+
outputSequelizeAttributes: ropid_gtfs_1.RopidGTFS.tripSchedule.outputSequelizeAttributes,
|
|
23
|
+
pgTableName: ropid_gtfs_1.RopidGTFS.tripSchedule.pgTableName,
|
|
23
24
|
pgSchema: ropid_gtfs_1.RopidGTFS.pgSchema,
|
|
24
25
|
savingType: "insertOnly",
|
|
25
26
|
attributesToRemove: ["id", "created_at", "updated_at"],
|
|
26
|
-
}, new golemio_validator_1.JSONSchemaValidator(
|
|
27
|
+
}, new golemio_validator_1.JSONSchemaValidator("TripScheduleRepositoryValidator", ropid_gtfs_1.RopidGTFS.tripSchedule.outputJsonSchema));
|
|
27
28
|
this.findAll = (options) => {
|
|
28
29
|
return this.sequelizeModel.findAll(Object.assign({ raw: true }, options));
|
|
29
30
|
};
|
|
30
|
-
this.
|
|
31
|
+
this.createAndPopulate = (sourceTableSuffix) => __awaiter(this, void 0, void 0, function* () {
|
|
31
32
|
/* eslint-disable max-len */
|
|
32
33
|
const sql = `
|
|
33
34
|
SELECT
|
|
@@ -114,21 +115,21 @@ class RopidGTFSScheduledTripsModel extends models_1.PostgresModel {
|
|
|
114
115
|
GREATEST(t6.arrival_time::INTERVAL, t6.departure_time::INTERVAL) AS max_stop_time,
|
|
115
116
|
t5.stop_id AS first_stop_id,
|
|
116
117
|
t6.stop_id AS last_stop_id
|
|
117
|
-
FROM "${ropid_gtfs_1.RopidGTFS.pgSchema}".
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
LEFT
|
|
121
|
-
LEFT
|
|
122
|
-
LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".
|
|
123
|
-
LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".
|
|
118
|
+
FROM "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_run_numbers${sourceTableSuffix} t1
|
|
119
|
+
INNER JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_precomputed_services_calendar_tmp t3 ON t1.service_id = t3.service_id
|
|
120
|
+
INNER JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_precomputed_minmax_stop_sequences_tmp t4 ON t1.trip_id = t4.trip_id
|
|
121
|
+
LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_trips${sourceTableSuffix} t8 ON t1.trip_id = t8.trip_id
|
|
122
|
+
LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_routes${sourceTableSuffix} t7 ON t8.route_id = t7.route_id
|
|
123
|
+
LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_stop_times${sourceTableSuffix} t5 ON t1.trip_id = t5.trip_id AND t5.stop_sequence = t4.min_stop_sequence
|
|
124
|
+
LEFT JOIN "${ropid_gtfs_1.RopidGTFS.pgSchema}".ropidgtfs_stop_times${sourceTableSuffix} t6 ON t1.trip_id = t6.trip_id AND t6.stop_sequence = t4.max_stop_sequence
|
|
124
125
|
) t0;
|
|
125
126
|
`;
|
|
126
127
|
/* eslint-enable max-len */
|
|
127
128
|
try {
|
|
128
|
-
const tmpTable = ropid_gtfs_1.RopidGTFS.
|
|
129
|
+
const tmpTable = ropid_gtfs_1.RopidGTFS.tripSchedule.pgTableName + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp;
|
|
129
130
|
yield this.sequelizeModel.sequelize.query(`DROP TABLE IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable};
|
|
130
131
|
CREATE TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable} (
|
|
131
|
-
LIKE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${ropid_gtfs_1.RopidGTFS.
|
|
132
|
+
LIKE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${ropid_gtfs_1.RopidGTFS.tripSchedule.pgTableName}
|
|
132
133
|
);
|
|
133
134
|
INSERT INTO "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tmpTable} ${sql};`);
|
|
134
135
|
}
|
|
@@ -139,10 +140,10 @@ class RopidGTFSScheduledTripsModel extends models_1.PostgresModel {
|
|
|
139
140
|
});
|
|
140
141
|
this.replaceByTmp = (transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
141
142
|
try {
|
|
142
|
-
const pgTableName = ropid_gtfs_1.RopidGTFS.
|
|
143
|
-
const
|
|
144
|
-
const
|
|
145
|
-
const indexQuery = (0, utils_1.buildAlterIndexQuery)(ropid_gtfs_1.RopidGTFS.
|
|
143
|
+
const pgTableName = ropid_gtfs_1.RopidGTFS.tripSchedule.pgTableName;
|
|
144
|
+
const tableNameTmp = pgTableName + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp;
|
|
145
|
+
const tableNameActual = pgTableName + SourceTableSuffixEnum_1.SourceTableSuffixEnum.Actual;
|
|
146
|
+
const indexQuery = (0, utils_1.buildAlterIndexQuery)(ropid_gtfs_1.RopidGTFS.tripSchedule.modelIndexOptions);
|
|
146
147
|
yield this.sequelizeModel.sequelize.query(`
|
|
147
148
|
LOCK "${ropid_gtfs_1.RopidGTFS.pgSchema}".${pgTableName} IN EXCLUSIVE MODE;
|
|
148
149
|
ALTER TABLE "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableNameActual} NO INHERIT "${ropid_gtfs_1.RopidGTFS.pgSchema}".${pgTableName};
|
|
@@ -159,8 +160,8 @@ class RopidGTFSScheduledTripsModel extends models_1.PostgresModel {
|
|
|
159
160
|
});
|
|
160
161
|
this.createIndexes = () => __awaiter(this, void 0, void 0, function* () {
|
|
161
162
|
try {
|
|
162
|
-
const indexes = ropid_gtfs_1.RopidGTFS.
|
|
163
|
-
const indexQuery = (0, utils_1.buildCreateIndexQuery)(ropid_gtfs_1.RopidGTFS.
|
|
163
|
+
const indexes = ropid_gtfs_1.RopidGTFS.tripSchedule.modelIndexOptions;
|
|
164
|
+
const indexQuery = (0, utils_1.buildCreateIndexQuery)(ropid_gtfs_1.RopidGTFS.tripSchedule.pgTableName, indexes);
|
|
164
165
|
yield this.sequelizeModel.sequelize.query(indexQuery);
|
|
165
166
|
}
|
|
166
167
|
catch (err) {
|
|
@@ -170,5 +171,5 @@ class RopidGTFSScheduledTripsModel extends models_1.PostgresModel {
|
|
|
170
171
|
});
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
|
-
exports.
|
|
174
|
-
//# sourceMappingURL=
|
|
174
|
+
exports.TripScheduleRepository = TripScheduleRepository;
|
|
175
|
+
//# sourceMappingURL=TripScheduleRepository.js.map
|
package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripScheduleRepository.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TripScheduleRepository.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/TripScheduleRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./TripScheduleRepository"), exports);
|
|
18
|
+
__exportStar(require("./ServicesCalendarRepository"), exports);
|
|
19
|
+
__exportStar(require("./MinMaxStopSequencesRepository"), exports);
|
|
17
20
|
__exportStar(require("./DeparturesRepository"), exports);
|
|
18
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/integration-engine/ropid-gtfs/data-access/precomputed/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,+DAA6C;AAC7C,kEAAgD;AAChD,yDAAuC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SourceTableSuffixEnum = void 0;
|
|
4
|
+
var SourceTableSuffixEnum;
|
|
5
|
+
(function (SourceTableSuffixEnum) {
|
|
6
|
+
SourceTableSuffixEnum["Actual"] = "_actual";
|
|
7
|
+
SourceTableSuffixEnum["Tmp"] = "_tmp";
|
|
8
|
+
SourceTableSuffixEnum["Drop"] = "_drop";
|
|
9
|
+
})(SourceTableSuffixEnum = exports.SourceTableSuffixEnum || (exports.SourceTableSuffixEnum = {}));
|
|
10
|
+
//# sourceMappingURL=SourceTableSuffixEnum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceTableSuffixEnum.js","sourceRoot":"","sources":["../../../../src/integration-engine/ropid-gtfs/helpers/SourceTableSuffixEnum.ts"],"names":[],"mappings":";;;AAAA,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC7B,2CAAkB,CAAA;IAClB,qCAAY,CAAA;IACZ,uCAAc,CAAA;AAClB,CAAC,EAJW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAIhC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export * from "./transformations/RopidDeparturesPresetsTransformation";
|
|
2
2
|
export * from "./transformations/RopidGTFSCisStopsTransformation";
|
|
3
3
|
export * from "./transformations/RopidGTFSTransformation";
|
|
4
|
-
export * from "./RopidGTFSServicesFirst14daysModel";
|
|
5
|
-
export * from "./RopidGTFSMinMaxSequencesModel";
|
|
6
|
-
export * from "./RopidGTFSScheduledTripsModel";
|
|
7
4
|
export * from "./RopidGTFSTripsModel";
|
|
8
5
|
export * from "./RopidGTFSMetadataModel";
|
|
9
6
|
export * from "./RopidGTFSWorker";
|
|
@@ -17,9 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./transformations/RopidDeparturesPresetsTransformation"), exports);
|
|
18
18
|
__exportStar(require("./transformations/RopidGTFSCisStopsTransformation"), exports);
|
|
19
19
|
__exportStar(require("./transformations/RopidGTFSTransformation"), exports);
|
|
20
|
-
__exportStar(require("./RopidGTFSServicesFirst14daysModel"), exports);
|
|
21
|
-
__exportStar(require("./RopidGTFSMinMaxSequencesModel"), exports);
|
|
22
|
-
__exportStar(require("./RopidGTFSScheduledTripsModel"), exports);
|
|
23
20
|
__exportStar(require("./RopidGTFSTripsModel"), exports);
|
|
24
21
|
__exportStar(require("./RopidGTFSMetadataModel"), exports);
|
|
25
22
|
__exportStar(require("./RopidGTFSWorker"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yFAAuE;AACvE,oFAAkE;AAClE,4EAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yFAAuE;AACvE,oFAAkE;AAClE,4EAA0D;AAC1D,wDAAsC;AACtC,2DAAyC;AACzC,oDAAkC;AAClC,4DAA0C;AAC1C,wDAAsC;AACtC,yDAAuC"}
|
|
@@ -2,24 +2,25 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildDropIndexQuery = exports.buildAlterIndexQuery = exports.buildCreateIndexQuery = void 0;
|
|
4
4
|
const ropid_gtfs_1 = require("../../schema-definitions/ropid-gtfs");
|
|
5
|
+
const SourceTableSuffixEnum_1 = require("./helpers/SourceTableSuffixEnum");
|
|
5
6
|
const buildCreateIndexQuery = (tableName, indexes) => {
|
|
6
7
|
const rawQuery = indexes.map((el) => {
|
|
7
|
-
return `CREATE ${el.unique ? "UNIQUE" : ""} INDEX IF NOT EXISTS ${el.name}
|
|
8
|
-
ON "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableName}
|
|
8
|
+
return `CREATE ${el.unique ? "UNIQUE" : ""} INDEX IF NOT EXISTS ${el.name}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp}
|
|
9
|
+
ON "${ropid_gtfs_1.RopidGTFS.pgSchema}".${tableName}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp} ${el.using ? "USING " + el.using : ""} (${el.fields.toString()});`;
|
|
9
10
|
});
|
|
10
11
|
return rawQuery.join(" ");
|
|
11
12
|
};
|
|
12
13
|
exports.buildCreateIndexQuery = buildCreateIndexQuery;
|
|
13
14
|
const buildAlterIndexQuery = (indexes) => {
|
|
14
15
|
const rawQuery = indexes.map((el) => {
|
|
15
|
-
return `ALTER INDEX IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${el.name}
|
|
16
|
+
return `ALTER INDEX IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${el.name}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp} RENAME TO ${el.name};`;
|
|
16
17
|
});
|
|
17
18
|
return rawQuery.join(" ");
|
|
18
19
|
};
|
|
19
20
|
exports.buildAlterIndexQuery = buildAlterIndexQuery;
|
|
20
21
|
const buildDropIndexQuery = (indexes) => {
|
|
21
22
|
const rawQuery = indexes.map((el) => {
|
|
22
|
-
return `DROP INDEX IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${el.name}
|
|
23
|
+
return `DROP INDEX IF EXISTS "${ropid_gtfs_1.RopidGTFS.pgSchema}".${el.name}${SourceTableSuffixEnum_1.SourceTableSuffixEnum.Tmp};`;
|
|
23
24
|
});
|
|
24
25
|
return rawQuery.join(" ");
|
|
25
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/utils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/utils.ts"],"names":[],"mappings":";;;AAAA,oEAA4C;AAE5C,2EAAwE;AAEjE,MAAM,qBAAqB,GAAG,CAAC,SAAiB,EAAE,OAA8B,EAAU,EAAE;IAC/F,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAChC,OAAO,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,wBAAwB,EAAE,CAAC,IAAI,GAAG,6CAAqB,CAAC,GAAG;sBACvF,sBAAS,CAAC,QAAQ,KAAK,SAAS,GAAG,6CAAqB,CAAC,GAAG,IACtE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EACrC,KAAK,EAAE,CAAC,MAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC;AAEK,MAAM,oBAAoB,GAAG,CAAC,OAA8B,EAAU,EAAE;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAChC,OAAO,0BAA0B,sBAAS,CAAC,QAAQ,KAAK,EAAE,CAAC,IAAI,GAAG,6CAAqB,CAAC,GAAG,cAAc,EAAE,CAAC,IAAI,GAAG,CAAC;IACxH,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AANW,QAAA,oBAAoB,wBAM/B;AAEK,MAAM,mBAAmB,GAAG,CAAC,OAA8B,EAAU,EAAE;IAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QAChC,OAAO,yBAAyB,sBAAS,CAAC,QAAQ,KAAK,EAAE,CAAC,IAAI,GAAG,6CAAqB,CAAC,GAAG,GAAG,CAAC;IAClG,CAAC,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAC;AALW,QAAA,mBAAmB,uBAK9B"}
|
package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export declare class CommonRunsRepository extends PostgresModel implements IMode
|
|
|
19
19
|
/** Associated vehiclepositions_runs_messages repository */
|
|
20
20
|
protected runsMessagesRepository: CommonRunsMessagesRepository;
|
|
21
21
|
/** Precomputed scheduled trips model */
|
|
22
|
-
private
|
|
22
|
+
private tripScheduleRepository;
|
|
23
23
|
constructor();
|
|
24
24
|
getRunRecordForUpdate: (run: ICommonRunsModel) => Promise<ICommonRunsModel | null>;
|
|
25
25
|
createAndAssociate: ({ run, run_message }: ICommonRunWithMessage) => Promise<ICommonRunWithMessage>;
|
package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.js
CHANGED
|
@@ -44,7 +44,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
44
44
|
};
|
|
45
45
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
46
|
exports.CommonRunsRepository = void 0;
|
|
47
|
-
const
|
|
47
|
+
const precomputed_1 = require("../../../../ropid-gtfs/data-access/precomputed");
|
|
48
48
|
const vehicle_positions_1 = require("../../../../../schema-definitions/vehicle-positions");
|
|
49
49
|
const models_1 = require("../../../../../schema-definitions/vehicle-positions/models");
|
|
50
50
|
const connectors_1 = require("@golemio/core/dist/integration-engine/connectors");
|
|
@@ -148,7 +148,7 @@ class CommonRunsRepository extends models_2.PostgresModel {
|
|
|
148
148
|
}
|
|
149
149
|
});
|
|
150
150
|
this.getScheduledTrips = (origin_route_name, run_number, msg_last_timestamp) => {
|
|
151
|
-
return this.
|
|
151
|
+
return this.tripScheduleRepository.findAll({
|
|
152
152
|
attributes: {
|
|
153
153
|
include: [
|
|
154
154
|
[sequelize_1.default.cast(sequelize_1.default.col("start_timestamp"), "varchar"), "start_timestamp"],
|
|
@@ -181,7 +181,7 @@ class CommonRunsRepository extends models_2.PostgresModel {
|
|
|
181
181
|
foreignKey: "runs_id",
|
|
182
182
|
as: "run_messages",
|
|
183
183
|
});
|
|
184
|
-
this.
|
|
184
|
+
this.tripScheduleRepository = new precomputed_1.TripScheduleRepository();
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
exports.CommonRunsRepository = CommonRunsRepository;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommonRunsRepository.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,
|
|
1
|
+
{"version":3,"file":"CommonRunsRepository.js","sourceRoot":"","sources":["../../../../../../src/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -461,22 +461,22 @@ class TripsRepository extends models_2.PostgresModel {
|
|
|
461
461
|
const sqlQuery = `
|
|
462
462
|
SELECT DISTINCT
|
|
463
463
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id as gtfs_trip_id,
|
|
464
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
464
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_trip_schedule.date as gtfs_date,
|
|
465
465
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_headsign as gtfs_trip_headsign,
|
|
466
466
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes.route_id as gtfs_route_id,
|
|
467
467
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes.route_type as gtfs_route_type,
|
|
468
468
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes.route_short_name as gtfs_route_short_name,
|
|
469
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
470
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
471
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
472
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
469
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_minmax_stop_sequences.min_stop_time,
|
|
470
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_minmax_stop_sequences.max_stop_time,
|
|
471
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_trip_schedule.run_number as internal_run_number,
|
|
472
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_trip_schedule.origin_route_name as internal_route_name
|
|
473
473
|
FROM "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips
|
|
474
474
|
INNER JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.route_id=ropidgtfs_routes.route_id
|
|
475
475
|
INNER JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_stop_times ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id=ropidgtfs_stop_times.trip_id
|
|
476
|
-
LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
477
|
-
ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id=
|
|
478
|
-
AND
|
|
479
|
-
LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
476
|
+
LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_trip_schedule
|
|
477
|
+
ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id=ropidgtfs_precomputed_trip_schedule.trip_id
|
|
478
|
+
AND ropidgtfs_precomputed_trip_schedule.start_timestamp::date = current_date
|
|
479
|
+
LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_minmax_stop_sequences ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id=ropidgtfs_precomputed_minmax_stop_sequences.trip_id
|
|
480
480
|
WHERE
|
|
481
481
|
( "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes.route_short_name LIKE $cisLineShortName
|
|
482
482
|
OR CASE WHEN ($cisLineShortName = 'IKEA')
|
|
@@ -574,7 +574,7 @@ class TripsRepository extends models_2.PostgresModel {
|
|
|
574
574
|
LIMIT 1)
|
|
575
575
|
SELECT DISTINCT
|
|
576
576
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id as gtfs_trip_id,
|
|
577
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
577
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_trip_schedule.date as gtfs_date,
|
|
578
578
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.block_id as gtfs_block_id,
|
|
579
579
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_headsign as gtfs_trip_headsign,
|
|
580
580
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_short_name as gtfs_trip_short_name,
|
|
@@ -582,18 +582,18 @@ class TripsRepository extends models_2.PostgresModel {
|
|
|
582
582
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes.route_type as gtfs_route_type,
|
|
583
583
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes.route_short_name as gtfs_route_short_name,
|
|
584
584
|
wanted_trip.cis_trip_number,
|
|
585
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
586
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
587
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
588
|
-
"${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
585
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_minmax_stop_sequences.min_stop_time,
|
|
586
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_minmax_stop_sequences.max_stop_time,
|
|
587
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_trip_schedule.run_number as internal_run_number,
|
|
588
|
+
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_trip_schedule.origin_route_name as internal_route_name
|
|
589
589
|
FROM "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips
|
|
590
590
|
INNER JOIN wanted_trip ON 1 = 1
|
|
591
591
|
INNER JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.route_id=ropidgtfs_routes.route_id
|
|
592
592
|
INNER JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_stop_times ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id=ropidgtfs_stop_times.trip_id
|
|
593
|
-
LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
594
|
-
ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id=
|
|
595
|
-
AND
|
|
596
|
-
LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".
|
|
593
|
+
LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_trip_schedule
|
|
594
|
+
ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id=ropidgtfs_precomputed_trip_schedule.trip_id
|
|
595
|
+
AND ropidgtfs_precomputed_trip_schedule.start_timestamp::date = current_date
|
|
596
|
+
LEFT JOIN "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_minmax_stop_sequences ON "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id="${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_precomputed_minmax_stop_sequences.trip_id
|
|
597
597
|
WHERE
|
|
598
598
|
"${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_trips.trip_id ~ CONCAT('\\d+_', wanted_trip.cis_trip_number, '_\\d+')
|
|
599
599
|
AND "${vehicle_positions_1.VehiclePositions.pgSchema}".ropidgtfs_routes.route_type = '2'
|