@golemio/pid 5.7.3 → 5.7.4-dev.2387470014
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/dist/const.d.ts +0 -1
- package/dist/const.js +1 -2
- package/dist/const.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +14 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js +47 -0
- package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.d.ts +3 -2
- package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js +4 -2
- package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.d.ts +9 -0
- package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js +47 -0
- package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js.map +1 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js +4 -0
- package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +2 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +2 -0
- package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.d.ts +6 -1
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js +39 -10
- package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/Di.js +2 -0
- package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +1 -0
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +1 -0
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +11 -5
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +36 -9
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.d.ts +4 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +26 -9
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +7 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +26 -8
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/helpers/interfaces/ICommonMessageFilter.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +3 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +4 -3
- package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.d.ts +1 -2
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +3 -10
- package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.d.ts +2 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js +5 -3
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/IUpdateRunsGtfsTripInput.d.ts +11 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.d.ts +3 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js +11 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js +4 -3
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.d.ts +10 -3
- package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/TripRepository.d.ts +7 -3
- package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.d.ts +10 -3
- package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.d.ts +10 -3
- package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +10 -0
- package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js +45 -0
- package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
- package/dist/output-gateway/vehicle-positions/data-access/index.js +9 -18
- package/dist/output-gateway/vehicle-positions/data-access/index.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/interfaces/ITripWithPositionRepository.d.ts +3 -2
- package/dist/output-gateway/vehicle-positions/data-access/interfaces/IVPRepositoryInstances.d.ts +6 -6
- package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.d.ts +7 -3
- package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js +30 -7
- package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.d.ts +17 -7
- package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js +112 -42
- package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js.map +1 -1
- package/dist/output-gateway/vehicle-positions/ioc/Di.d.ts +3 -0
- package/dist/output-gateway/vehicle-positions/ioc/Di.js +23 -0
- package/dist/output-gateway/vehicle-positions/ioc/Di.js.map +1 -0
- package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.d.ts +9 -0
- package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js +15 -0
- package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js.map +1 -0
- package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.d.ts +3 -0
- package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js +40 -0
- package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js.map +1 -0
- package/dist/schema-definitions/datasources/static-data/index.d.ts +1 -0
- package/dist/schema-definitions/datasources/static-data/index.js +1 -0
- package/dist/schema-definitions/datasources/static-data/index.js.map +1 -1
- package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.d.ts +35 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js +18 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js.map +1 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/index.d.ts +1 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/index.js +1 -0
- package/dist/schema-definitions/datasources/static-data/interfaces/index.js.map +1 -1
- package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +2 -0
- package/dist/schema-definitions/ropid-gtfs/redis/const.js +3 -1
- package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
- package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.d.ts +8 -0
- package/docs/asyncapi.yaml +13 -2
- package/docs/cache/types/redis.md +30 -2
- package/docs/examples/not_public_vehicles.json +9 -0
- package/docs/implementation_documentation.md +101 -4
- package/docs/jis/index.md +17 -0
- package/docs/processing/input_realtime_data/http_mpvnet.md +21 -0
- package/docs/processing/state_position_tracking/http_mpvnet.md +1 -0
- package/docs/processing/state_position_tracking/tcp_dpp_common.md +2 -1
- package/docs/processing/transferboards_filtering.md +312 -0
- package/package.json +1 -1
package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.d.ts
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
|
+
import { NotPublicVehiclesRedisRepository } from "../cache/NotPublicVehiclesRedisRepository";
|
|
2
|
+
import { ProcessedPositionRepository } from "./ProcessedPositionRepository";
|
|
3
|
+
import { VehicleTypeRepository } from "../VehicleTypeRepository";
|
|
4
|
+
import { VehicleDescriptorRepository } from "../VehicleDescriptorRepository";
|
|
1
5
|
import { TripWithLastPositionModel } from "../../../../schema-definitions/vehicle-positions/models/views";
|
|
2
|
-
import {
|
|
6
|
+
import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
|
|
3
7
|
import { IGeoJSONFeature } from "@golemio/core/dist/output-gateway/Geo";
|
|
4
8
|
import { ModelStatic } from "@golemio/core/dist/shared/sequelize";
|
|
5
|
-
import { ITripGetAllOutput
|
|
6
|
-
import {
|
|
7
|
-
|
|
9
|
+
import { ITripGetAllOutput } from "../interfaces/ITripWithPositionRepository";
|
|
10
|
+
import { AbstractBasicRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractBasicRepository";
|
|
11
|
+
import { ILogger } from "@golemio/core/dist/helpers";
|
|
12
|
+
export declare class TripWithLastPositionRepository extends AbstractBasicRepository {
|
|
13
|
+
private notPublicVehiclesRepository;
|
|
14
|
+
private processedPositionRepository;
|
|
15
|
+
private vehicleTypeRepository;
|
|
16
|
+
private vehicleDescriptorRepository;
|
|
17
|
+
schema: string;
|
|
18
|
+
tableName: string;
|
|
8
19
|
sequelizeModel: ModelStatic<TripWithLastPositionModel>;
|
|
9
|
-
|
|
10
|
-
constructor();
|
|
11
|
-
Associate: (repositories: IVPRepositoryInstances) => void;
|
|
20
|
+
constructor(connector: IDatabaseConnector, logger: ILogger, notPublicVehiclesRepository: NotPublicVehiclesRedisRepository, processedPositionRepository: ProcessedPositionRepository, vehicleTypeRepository: VehicleTypeRepository, vehicleDescriptorRepository: VehicleDescriptorRepository);
|
|
12
21
|
/** Retrieves all vehicle trips
|
|
13
22
|
* @param {object} options Options object with params
|
|
14
23
|
* @param {number} [options.limit] Limit
|
|
@@ -47,4 +56,5 @@ export declare class TripWithLastPositionRepository extends SequelizeModel imple
|
|
|
47
56
|
}) => Promise<IGeoJSONFeature | null>;
|
|
48
57
|
private composeIncludes;
|
|
49
58
|
private determinePossibleStatePositions;
|
|
59
|
+
private getNotPublicWhereConditions;
|
|
50
60
|
}
|
package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js
CHANGED
|
@@ -15,6 +15,12 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
18
24
|
var __importStar = (this && this.__importStar) || (function () {
|
|
19
25
|
var ownKeys = function(o) {
|
|
20
26
|
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
@@ -32,52 +38,45 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
38
|
return result;
|
|
33
39
|
};
|
|
34
40
|
})();
|
|
41
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
+
};
|
|
44
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
45
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
46
|
+
};
|
|
35
47
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
48
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
49
|
};
|
|
38
50
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
51
|
exports.TripWithLastPositionRepository = void 0;
|
|
40
52
|
const const_1 = require("../../../../schema-definitions/const");
|
|
53
|
+
const NotPublicVehiclesRedisRepository_1 = require("../cache/NotPublicVehiclesRedisRepository");
|
|
54
|
+
const ProcessedPositionRepository_1 = require("./ProcessedPositionRepository");
|
|
55
|
+
const VehicleTypeRepository_1 = require("../VehicleTypeRepository");
|
|
56
|
+
const VehicleDescriptorRepository_1 = require("../VehicleDescriptorRepository");
|
|
57
|
+
const OgVehiclePositionsToken_1 = require("../../ioc/OgVehiclePositionsToken");
|
|
41
58
|
const models_1 = require("../../../../schema-definitions/vehicle-descriptors/models");
|
|
42
59
|
const vehicle_positions_1 = require("../../../../schema-definitions/vehicle-positions");
|
|
43
60
|
const views_1 = require("../../../../schema-definitions/vehicle-positions/models/views");
|
|
44
|
-
const output_gateway_1 = require("@golemio/core/dist/output-gateway");
|
|
45
61
|
const Geo_1 = require("@golemio/core/dist/output-gateway/Geo");
|
|
46
|
-
const ioc_1 = require("@golemio/core/dist/output-gateway/ioc/");
|
|
47
62
|
const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
|
|
48
63
|
const moment_timezone_1 = __importDefault(require("@golemio/core/dist/shared/moment-timezone"));
|
|
49
64
|
const sequelize_1 = __importStar(require("@golemio/core/dist/shared/sequelize"));
|
|
50
65
|
const const_2 = require("../../../../const");
|
|
66
|
+
const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
|
|
51
67
|
const PositionOutputMapper_1 = require("../helpers/PositionOutputMapper");
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
this.sequelizeModel.belongsTo(repositories.vehicleTypeRepository.sequelizeModel, {
|
|
67
|
-
as: "vehicle_type",
|
|
68
|
-
foreignKey: "vehicle_type_id",
|
|
69
|
-
});
|
|
70
|
-
this.sequelizeModel.belongsTo(repositories.vehicleDescriptorRepository.sequelizeModel, {
|
|
71
|
-
as: "vehicle_descriptor",
|
|
72
|
-
foreignKey: "vehicle_registration_number",
|
|
73
|
-
targetKey: "registration_number",
|
|
74
|
-
scope: {
|
|
75
|
-
[sequelize_1.default.Op.and]: [
|
|
76
|
-
sequelize_1.default.literal(`${views_1.TripWithLastPositionModel.tableName}.gtfs_route_type = vehicle_descriptor.gtfs_route_type`),
|
|
77
|
-
],
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
};
|
|
68
|
+
const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
|
|
69
|
+
const AbstractBasicRepository_1 = require("@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractBasicRepository");
|
|
70
|
+
const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
|
|
71
|
+
let TripWithLastPositionRepository = class TripWithLastPositionRepository extends AbstractBasicRepository_1.AbstractBasicRepository {
|
|
72
|
+
constructor(connector, logger, notPublicVehiclesRepository, processedPositionRepository, vehicleTypeRepository, vehicleDescriptorRepository) {
|
|
73
|
+
super(connector, logger);
|
|
74
|
+
this.notPublicVehiclesRepository = notPublicVehiclesRepository;
|
|
75
|
+
this.processedPositionRepository = processedPositionRepository;
|
|
76
|
+
this.vehicleTypeRepository = vehicleTypeRepository;
|
|
77
|
+
this.vehicleDescriptorRepository = vehicleDescriptorRepository;
|
|
78
|
+
this.schema = const_1.PG_SCHEMA;
|
|
79
|
+
this.tableName = views_1.TripWithLastPositionModel.tableName;
|
|
81
80
|
/** Retrieves all vehicle trips
|
|
82
81
|
* @param {object} options Options object with params
|
|
83
82
|
* @param {number} [options.limit] Limit
|
|
@@ -94,6 +93,10 @@ class TripWithLastPositionRepository extends output_gateway_1.SequelizeModel {
|
|
|
94
93
|
// updatedSince cannot be more than 10 minutes ago
|
|
95
94
|
const maxUpdatedAt = updatedSince && (0, moment_timezone_1.default)(updatedSince).isSameOrAfter(minUpdatedAt) ? updatedSince.toISOString() : null;
|
|
96
95
|
const include = this.composeIncludes(options);
|
|
96
|
+
let notPublicWhereConditions = [];
|
|
97
|
+
if (options.includeNotPublic) {
|
|
98
|
+
notPublicWhereConditions = await this.getNotPublicWhereConditions();
|
|
99
|
+
}
|
|
97
100
|
try {
|
|
98
101
|
const rows = await this.sequelizeModel.findAll({
|
|
99
102
|
attributes: {
|
|
@@ -110,12 +113,7 @@ class TripWithLastPositionRepository extends output_gateway_1.SequelizeModel {
|
|
|
110
113
|
},
|
|
111
114
|
},
|
|
112
115
|
{
|
|
113
|
-
[sequelize_1.Op.or]: [
|
|
114
|
-
{ gtfs_trip_id: { [sequelize_1.Op.ne]: null } },
|
|
115
|
-
{
|
|
116
|
-
vehicle_registration_number: { [sequelize_1.Op.in]: const_2.ArrayNotPublicRegistrationNumbers },
|
|
117
|
-
},
|
|
118
|
-
],
|
|
116
|
+
[sequelize_1.Op.or]: [{ gtfs_trip_id: { [sequelize_1.Op.ne]: null } }, ...notPublicWhereConditions],
|
|
119
117
|
},
|
|
120
118
|
maxUpdatedAt
|
|
121
119
|
? {
|
|
@@ -196,11 +194,11 @@ class TripWithLastPositionRepository extends output_gateway_1.SequelizeModel {
|
|
|
196
194
|
const include = [
|
|
197
195
|
{
|
|
198
196
|
as: "vehicle_type",
|
|
199
|
-
model: this.
|
|
197
|
+
model: this.connector.getConnection().models[vehicle_positions_1.VehiclePositions.vehicleTypes.pgTableName],
|
|
200
198
|
},
|
|
201
199
|
{
|
|
202
200
|
as: "vehicle_descriptor",
|
|
203
|
-
model: this.
|
|
201
|
+
model: this.connector.getConnection().models[models_1.DescriptorModel.tableName],
|
|
204
202
|
attributes: ["is_air_conditioned", "has_usb_chargers"],
|
|
205
203
|
},
|
|
206
204
|
];
|
|
@@ -210,7 +208,7 @@ class TripWithLastPositionRepository extends output_gateway_1.SequelizeModel {
|
|
|
210
208
|
exclude: ["trips_id", "state_position"],
|
|
211
209
|
},
|
|
212
210
|
as: "all_positions",
|
|
213
|
-
model: this.
|
|
211
|
+
model: this.connector.getConnection().models[views_1.ProcessedPositionModel.tableName],
|
|
214
212
|
where: {
|
|
215
213
|
state_position: {
|
|
216
214
|
[sequelize_1.Op.in]: possibleStatePositions,
|
|
@@ -230,11 +228,83 @@ class TripWithLastPositionRepository extends output_gateway_1.SequelizeModel {
|
|
|
230
228
|
}
|
|
231
229
|
return possibleStatePosition;
|
|
232
230
|
};
|
|
233
|
-
this.
|
|
231
|
+
this.getNotPublicWhereConditions = async () => {
|
|
232
|
+
const conditions = [];
|
|
233
|
+
// Fetch not-public vehicles config from Redis
|
|
234
|
+
const { tram: { registrationNumbers: tramRegistrationNumbers }, road: { registrationNumbers: roadRegistrationNumbers }, routeIds: allowedRouteNames, } = await this.notPublicVehiclesRepository.getConfig();
|
|
235
|
+
// Add tram vehicles condition only if we have tram registration numbers
|
|
236
|
+
if (tramRegistrationNumbers && tramRegistrationNumbers.length > 0) {
|
|
237
|
+
conditions.push({
|
|
238
|
+
[sequelize_1.Op.and]: [
|
|
239
|
+
{ gtfs_route_type: RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM },
|
|
240
|
+
{ vehicle_registration_number: { [sequelize_1.Op.in]: tramRegistrationNumbers } },
|
|
241
|
+
],
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
// Add road vehicles condition only if we have road registration numbers
|
|
245
|
+
if (roadRegistrationNumbers && roadRegistrationNumbers.length > 0) {
|
|
246
|
+
conditions.push({
|
|
247
|
+
[sequelize_1.Op.and]: [
|
|
248
|
+
{
|
|
249
|
+
gtfs_route_type: {
|
|
250
|
+
[sequelize_1.Op.in]: [RouteTypeEnums_1.GTFSRouteTypeEnum.BUS, RouteTypeEnums_1.GTFSRouteTypeEnum.TROLLEYBUS],
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
{ vehicle_registration_number: { [sequelize_1.Op.in]: roadRegistrationNumbers } },
|
|
254
|
+
],
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
// Add route names condition only if we have route IDs
|
|
258
|
+
if (allowedRouteNames && allowedRouteNames.length > 0) {
|
|
259
|
+
conditions.push({
|
|
260
|
+
origin_route_name: { [sequelize_1.Op.in]: allowedRouteNames },
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
return conditions;
|
|
264
|
+
};
|
|
265
|
+
this.sequelizeModel = connector.getConnection().define(this.tableName, views_1.TripWithLastPositionModel.attributeModel, {
|
|
266
|
+
schema: this.schema,
|
|
267
|
+
});
|
|
268
|
+
// Set up associations
|
|
269
|
+
this.sequelizeModel.hasMany(this.processedPositionRepository.sequelizeModel, {
|
|
270
|
+
as: "all_positions",
|
|
271
|
+
foreignKey: "trips_id",
|
|
272
|
+
scope: {
|
|
273
|
+
lat: { [sequelize_1.Op.not]: null },
|
|
274
|
+
lng: { [sequelize_1.Op.not]: null },
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
this.sequelizeModel.belongsTo(this.vehicleTypeRepository.sequelizeModel, {
|
|
278
|
+
as: "vehicle_type",
|
|
279
|
+
foreignKey: "vehicle_type_id",
|
|
280
|
+
});
|
|
281
|
+
this.sequelizeModel.belongsTo(this.vehicleDescriptorRepository.sequelizeModel, {
|
|
282
|
+
as: "vehicle_descriptor",
|
|
283
|
+
foreignKey: "vehicle_registration_number",
|
|
284
|
+
targetKey: "registration_number",
|
|
285
|
+
scope: {
|
|
286
|
+
[sequelize_1.default.Op.and]: [
|
|
287
|
+
sequelize_1.default.literal(`${views_1.TripWithLastPositionModel.tableName}.gtfs_route_type = vehicle_descriptor.gtfs_route_type`),
|
|
288
|
+
],
|
|
289
|
+
},
|
|
290
|
+
});
|
|
234
291
|
}
|
|
235
292
|
GetOne() {
|
|
236
293
|
throw new Error("Not implemented");
|
|
237
294
|
}
|
|
238
|
-
}
|
|
295
|
+
};
|
|
239
296
|
exports.TripWithLastPositionRepository = TripWithLastPositionRepository;
|
|
297
|
+
exports.TripWithLastPositionRepository = TripWithLastPositionRepository = __decorate([
|
|
298
|
+
(0, tsyringe_1.injectable)(),
|
|
299
|
+
__param(0, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.PostgresConnector)),
|
|
300
|
+
__param(1, (0, tsyringe_1.inject)(CoreToken_1.CoreToken.Logger)),
|
|
301
|
+
__param(2, (0, tsyringe_1.inject)(OgVehiclePositionsToken_1.OgVehiclePositionsToken.NotPublicVehiclesRedisRepository)),
|
|
302
|
+
__param(3, (0, tsyringe_1.inject)(OgVehiclePositionsToken_1.OgVehiclePositionsToken.ProcessedPositionRepository)),
|
|
303
|
+
__param(4, (0, tsyringe_1.inject)(OgVehiclePositionsToken_1.OgVehiclePositionsToken.VehicleTypeRepository)),
|
|
304
|
+
__param(5, (0, tsyringe_1.inject)(OgVehiclePositionsToken_1.OgVehiclePositionsToken.VehicleDescriptorRepository)),
|
|
305
|
+
__metadata("design:paramtypes", [Object, Object, NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository,
|
|
306
|
+
ProcessedPositionRepository_1.ProcessedPositionRepository,
|
|
307
|
+
VehicleTypeRepository_1.VehicleTypeRepository,
|
|
308
|
+
VehicleDescriptorRepository_1.VehicleDescriptorRepository])
|
|
309
|
+
], TripWithLastPositionRepository);
|
|
240
310
|
//# sourceMappingURL=TripWithLastPositionRepository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TripWithLastPositionRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TripWithLastPositionRepository.js","sourceRoot":"","sources":["../../../../../src/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OgVehiclePositionsContainer = void 0;
|
|
4
|
+
const NotPublicVehiclesRedisRepository_1 = require("../data-access/cache/NotPublicVehiclesRedisRepository");
|
|
5
|
+
const PositionRepository_1 = require("../data-access/PositionRepository");
|
|
6
|
+
const TripRepository_1 = require("../data-access/TripRepository");
|
|
7
|
+
const VehicleDescriptorRepository_1 = require("../data-access/VehicleDescriptorRepository");
|
|
8
|
+
const VehicleTypeRepository_1 = require("../data-access/VehicleTypeRepository");
|
|
9
|
+
const ProcessedPositionRepository_1 = require("../data-access/views/ProcessedPositionRepository");
|
|
10
|
+
const TripWithLastPositionRepository_1 = require("../data-access/views/TripWithLastPositionRepository");
|
|
11
|
+
const Di_1 = require("@golemio/core/dist/output-gateway/ioc/Di");
|
|
12
|
+
const OgVehiclePositionsToken_1 = require("./OgVehiclePositionsToken");
|
|
13
|
+
const ogVehiclePositionsContainer = Di_1.OutputGatewayContainer.createChildContainer();
|
|
14
|
+
exports.OgVehiclePositionsContainer = ogVehiclePositionsContainer;
|
|
15
|
+
//#region Repositories
|
|
16
|
+
ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.NotPublicVehiclesRedisRepository, NotPublicVehiclesRedisRepository_1.NotPublicVehiclesRedisRepository);
|
|
17
|
+
ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.PositionRepository, PositionRepository_1.PositionRepository);
|
|
18
|
+
ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.TripRepository, TripRepository_1.TripRepository);
|
|
19
|
+
ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.VehicleTypeRepository, VehicleTypeRepository_1.VehicleTypeRepository);
|
|
20
|
+
ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.VehicleDescriptorRepository, VehicleDescriptorRepository_1.VehicleDescriptorRepository);
|
|
21
|
+
ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.TripWithLastPositionRepository, TripWithLastPositionRepository_1.TripWithLastPositionRepository);
|
|
22
|
+
ogVehiclePositionsContainer.registerSingleton(OgVehiclePositionsToken_1.OgVehiclePositionsToken.ProcessedPositionRepository, ProcessedPositionRepository_1.ProcessedPositionRepository);
|
|
23
|
+
//# sourceMappingURL=Di.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Di.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/ioc/Di.ts"],"names":[],"mappings":";;;AAAA,4GAAyG;AACzG,0EAAuE;AACvE,kEAA+D;AAC/D,4FAAyF;AACzF,gFAA6E;AAC7E,kGAA+F;AAC/F,wGAAqG;AACrG,iEAAkF;AAElF,uEAAoE;AAEpE,MAAM,2BAA2B,GAAwB,2BAAsB,CAAC,oBAAoB,EAAE,CAAC;AAkB/D,kEAA2B;AAhBnE,sBAAsB;AACtB,2BAA2B,CAAC,iBAAiB,CACzC,iDAAuB,CAAC,gCAAgC,EACxD,mEAAgC,CACnC,CAAC;AACF,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,kBAAkB,EAAE,uCAAkB,CAAC,CAAC;AAC9G,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,cAAc,EAAE,+BAAc,CAAC,CAAC;AACtG,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,qBAAqB,EAAE,6CAAqB,CAAC,CAAC;AACpH,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC;AAChI,2BAA2B,CAAC,iBAAiB,CACzC,iDAAuB,CAAC,8BAA8B,EACtD,+DAA8B,CACjC,CAAC;AACF,2BAA2B,CAAC,iBAAiB,CAAC,iDAAuB,CAAC,2BAA2B,EAAE,yDAA2B,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const OgVehiclePositionsToken: {
|
|
2
|
+
NotPublicVehiclesRedisRepository: symbol;
|
|
3
|
+
PositionRepository: symbol;
|
|
4
|
+
TripRepository: symbol;
|
|
5
|
+
VehicleTypeRepository: symbol;
|
|
6
|
+
VehicleDescriptorRepository: symbol;
|
|
7
|
+
TripWithLastPositionRepository: symbol;
|
|
8
|
+
ProcessedPositionRepository: symbol;
|
|
9
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OgVehiclePositionsToken = void 0;
|
|
4
|
+
exports.OgVehiclePositionsToken = {
|
|
5
|
+
//#region Repositories
|
|
6
|
+
NotPublicVehiclesRedisRepository: Symbol("NotPublicVehiclesRedisRepository"),
|
|
7
|
+
PositionRepository: Symbol("PositionRepository"),
|
|
8
|
+
TripRepository: Symbol("TripRepository"),
|
|
9
|
+
VehicleTypeRepository: Symbol("VehicleTypeRepository"),
|
|
10
|
+
VehicleDescriptorRepository: Symbol("VehicleDescriptorRepository"),
|
|
11
|
+
TripWithLastPositionRepository: Symbol("TripWithLastPositionRepository"),
|
|
12
|
+
ProcessedPositionRepository: Symbol("ProcessedPositionRepository"),
|
|
13
|
+
//#endregion
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=OgVehiclePositionsToken.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OgVehiclePositionsToken.js","sourceRoot":"","sources":["../../../../src/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG;IACnC,sBAAsB;IACtB,gCAAgC,EAAE,MAAM,CAAC,kCAAkC,CAAC;IAC5E,kBAAkB,EAAE,MAAM,CAAC,oBAAoB,CAAC;IAChD,cAAc,EAAE,MAAM,CAAC,gBAAgB,CAAC;IACxC,qBAAqB,EAAE,MAAM,CAAC,uBAAuB,CAAC;IACtD,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,8BAA8B,EAAE,MAAM,CAAC,gCAAgC,CAAC;IACxE,2BAA2B,EAAE,MAAM,CAAC,6BAA6B,CAAC;IAClE,YAAY;CACf,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.notPublicVehiclesJsonSchema = void 0;
|
|
4
|
+
exports.notPublicVehiclesJsonSchema = {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {
|
|
7
|
+
tram: {
|
|
8
|
+
type: "object",
|
|
9
|
+
properties: {
|
|
10
|
+
registrationNumbers: {
|
|
11
|
+
type: "array",
|
|
12
|
+
items: {
|
|
13
|
+
type: "string",
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
required: ["registrationNumbers"],
|
|
18
|
+
},
|
|
19
|
+
road: {
|
|
20
|
+
type: "object",
|
|
21
|
+
properties: {
|
|
22
|
+
registrationNumbers: {
|
|
23
|
+
type: "array",
|
|
24
|
+
items: {
|
|
25
|
+
type: "string",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
required: ["registrationNumbers"],
|
|
30
|
+
},
|
|
31
|
+
routeIds: {
|
|
32
|
+
type: "array",
|
|
33
|
+
items: {
|
|
34
|
+
type: "string",
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
required: ["tram", "road", "routeIds"],
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=NotPublicVehiclesJsonSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotPublicVehiclesJsonSchema.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,2BAA2B,GAAuC;IAC3E,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,mBAAmB,EAAE;oBACjB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;qBACjB;iBACJ;aACJ;YACD,QAAQ,EAAE,CAAC,qBAAqB,CAAC;SACpC;QACD,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,mBAAmB,EAAE;oBACjB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACH,IAAI,EAAE,QAAQ;qBACjB;iBACJ;aACJ;YACD,QAAQ,EAAE,CAAC,qBAAqB,CAAC;SACpC;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;KACJ;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;CACzC,CAAC"}
|
|
@@ -16,5 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./MetroRailTrackJsonSchema"), exports);
|
|
18
18
|
__exportStar(require("./DeparturesDirectionsJsonSchema"), exports);
|
|
19
|
+
__exportStar(require("./NotPublicVehiclesJsonSchema"), exports);
|
|
19
20
|
__exportStar(require("./interfaces"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/static-data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,mEAAiD;AACjD,+CAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/schema-definitions/datasources/static-data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,mEAAiD;AACjD,gEAA8C;AAC9C,+CAA6B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { GTFSRouteTypeEnum } from "../../../../helpers/RouteTypeEnums";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for the not-public vehicles configuration
|
|
4
|
+
* Used for ad-hoc/replacement vehicles (e.g., metro replacement buses)
|
|
5
|
+
* Loaded from Blob Storage
|
|
6
|
+
*/
|
|
7
|
+
export interface INotPublicVehicles {
|
|
8
|
+
/**
|
|
9
|
+
* Tram vehicle registration numbers
|
|
10
|
+
* Separated because trams and buses can have the same registration numbers
|
|
11
|
+
*/
|
|
12
|
+
tram: {
|
|
13
|
+
registrationNumbers: string[];
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Road vehicle registration numbers (bus + trolleybus)
|
|
17
|
+
* Separated from tram because they can have the same registration numbers
|
|
18
|
+
*/
|
|
19
|
+
road: {
|
|
20
|
+
registrationNumbers: string[];
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Whitelist of route IDs (line short names) that should be displayed
|
|
24
|
+
* even when they don't have a schedule
|
|
25
|
+
*/
|
|
26
|
+
routeIds: string[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Helper type to determine if a route type is a road vehicle (bus or trolleybus)
|
|
30
|
+
*/
|
|
31
|
+
export declare function isRoadVehicleType(routeType: GTFSRouteTypeEnum): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Helper type to determine if a route type is a tram
|
|
34
|
+
*/
|
|
35
|
+
export declare function isTramVehicleType(routeType: GTFSRouteTypeEnum): boolean;
|
package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isRoadVehicleType = isRoadVehicleType;
|
|
4
|
+
exports.isTramVehicleType = isTramVehicleType;
|
|
5
|
+
const RouteTypeEnums_1 = require("../../../../helpers/RouteTypeEnums");
|
|
6
|
+
/**
|
|
7
|
+
* Helper type to determine if a route type is a road vehicle (bus or trolleybus)
|
|
8
|
+
*/
|
|
9
|
+
function isRoadVehicleType(routeType) {
|
|
10
|
+
return routeType === RouteTypeEnums_1.GTFSRouteTypeEnum.BUS || routeType === RouteTypeEnums_1.GTFSRouteTypeEnum.TROLLEYBUS;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Helper type to determine if a route type is a tram
|
|
14
|
+
*/
|
|
15
|
+
function isTramVehicleType(routeType) {
|
|
16
|
+
return routeType === RouteTypeEnums_1.GTFSRouteTypeEnum.TRAM;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=NotPublicVehiclesDataInterface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotPublicVehiclesDataInterface.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.ts"],"names":[],"mappings":";;AAkCA,8CAEC;AAKD,8CAEC;AA3CD,uEAA+D;AA+B/D;;GAEG;AACH,SAAgB,iBAAiB,CAAC,SAA4B;IAC1D,OAAO,SAAS,KAAK,kCAAiB,CAAC,GAAG,IAAI,SAAS,KAAK,kCAAiB,CAAC,UAAU,CAAC;AAC7F,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,SAA4B;IAC1D,OAAO,SAAS,KAAK,kCAAiB,CAAC,IAAI,CAAC;AAChD,CAAC"}
|
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./MetroRailTrackDataInterface"), exports);
|
|
18
18
|
__exportStar(require("./DeparturesDirectionDataInterface"), exports);
|
|
19
|
+
__exportStar(require("./NotPublicVehiclesDataInterface"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/datasources/static-data/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,qEAAmD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/datasources/static-data/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,qEAAmD;AACnD,mEAAiD"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export declare const GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = "gtfsRunSchedule";
|
|
2
2
|
export declare const PUBLIC_DEPARTURE_NAMESPACE_PREFIX = "gtfsPublicDepartureCache";
|
|
3
3
|
export declare const GTFS_STOPS_NAMESPACE_PREFIX = "gtfsStopsCache";
|
|
4
|
+
export declare const CONFIG_NAMESPACE_PREFIX = "config";
|
|
5
|
+
export declare const NOT_PUBLIC_VEHICLES_KEY = "notPublicVehicles";
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GTFS_STOPS_NAMESPACE_PREFIX = exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = void 0;
|
|
3
|
+
exports.NOT_PUBLIC_VEHICLES_KEY = exports.CONFIG_NAMESPACE_PREFIX = exports.GTFS_STOPS_NAMESPACE_PREFIX = exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = void 0;
|
|
4
4
|
exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = "gtfsRunSchedule";
|
|
5
5
|
exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = "gtfsPublicDepartureCache";
|
|
6
6
|
exports.GTFS_STOPS_NAMESPACE_PREFIX = "gtfsStopsCache";
|
|
7
|
+
exports.CONFIG_NAMESPACE_PREFIX = "config";
|
|
8
|
+
exports.NOT_PUBLIC_VEHICLES_KEY = "notPublicVehicles";
|
|
7
9
|
//# sourceMappingURL=const.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/schema-definitions/ropid-gtfs/redis/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AACvD,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAC/D,QAAA,2BAA2B,GAAG,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/schema-definitions/ropid-gtfs/redis/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AACvD,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAC/D,QAAA,2BAA2B,GAAG,gBAAgB,CAAC;AAC/C,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,uBAAuB,GAAG,mBAAmB,CAAC"}
|
package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.d.ts
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
import { GTFSRouteTypeEnum } from "../../../../helpers/RouteTypeEnums";
|
|
1
2
|
import { ICommonRunsMessagesModel } from "./ICommonRunsMessagesModel";
|
|
2
3
|
import { ICommonRunsModel } from "./ICommonRunsModel";
|
|
3
4
|
export interface ICommonRunWithMessageDto {
|
|
4
5
|
run: ICommonRunsModel;
|
|
5
6
|
run_message: ICommonRunsMessagesModel;
|
|
7
|
+
/**
|
|
8
|
+
* Flag set by message filters to indicate this is a not-public vehicle
|
|
9
|
+
* (replacement bus/tram without schedule)
|
|
10
|
+
* Used by processor to determine if missing timestamp is acceptable
|
|
11
|
+
*/
|
|
12
|
+
isNotPublic?: boolean;
|
|
13
|
+
notPublicVehicleRouteType?: GTFSRouteTypeEnum.TRAM | GTFSRouteTypeEnum.BUS;
|
|
6
14
|
}
|
package/docs/asyncapi.yaml
CHANGED
|
@@ -558,6 +558,13 @@ components:
|
|
|
558
558
|
run_message:
|
|
559
559
|
type: object
|
|
560
560
|
$ref: "#/components/schemas/ICommonRunsMessagesModel"
|
|
561
|
+
isNotPublic:
|
|
562
|
+
type: boolean
|
|
563
|
+
description: Flag indicating if this is a not-public vehicle (e.g., replacement bus/tram). Optional.
|
|
564
|
+
notPublicVehicleRouteType:
|
|
565
|
+
type: number
|
|
566
|
+
enum: [0, 3]
|
|
567
|
+
description: GTFS route type for not-public vehicles (0=tram, 3=bus). Only populated when isNotPublic is true. Used to determine correct vehicle type mapping.
|
|
561
568
|
IUpdateDelayInput:
|
|
562
569
|
payload:
|
|
563
570
|
type: object
|
|
@@ -718,8 +725,12 @@ components:
|
|
|
718
725
|
type: string
|
|
719
726
|
description: The timestamp when the message was last sent.
|
|
720
727
|
wheelchair_accessible:
|
|
721
|
-
type: boolean
|
|
722
|
-
description:
|
|
728
|
+
type: [boolean, "null"]
|
|
729
|
+
description: |
|
|
730
|
+
Raw wheelchair accessibility flag from vehiclepositions_trips.
|
|
731
|
+
Mapped to wheelchairAccessible proto enum in GTFS-RT VehicleDescriptor:
|
|
732
|
+
null → WHEELCHAIR_ACCESSIBLE_UNSPECIFIED (0), true → WHEELCHAIR_ACCESSIBLE (1), false → WHEELCHAIR_INACCESSIBLE (2).
|
|
733
|
+
The OVAPI extension .transit_realtime.ovapiVehicleDescriptor.wheelchairAccessible retains the raw boolean/null value alongside the standard field.
|
|
723
734
|
ICommonRunsMessagesModel:
|
|
724
735
|
type: object
|
|
725
736
|
properties:
|