UNPKG

@golemio/pid

Version:
340 lines 12.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.VPTripsModel = void 0; const schema_definitions_1 = require("@golemio/core/dist/schema-definitions"); const sequelize_1 = require("@golemio/core/dist/shared/sequelize"); class VPTripsModel extends sequelize_1.Model { } exports.VPTripsModel = VPTripsModel; VPTripsModel.TABLE_NAME = "vehiclepositions_trips"; VPTripsModel.TABLE_NAME_HISTORY = "vehiclepositions_trips_history"; VPTripsModel.attributeModel = { agency_name_real: sequelize_1.DataTypes.STRING, agency_name_scheduled: sequelize_1.DataTypes.STRING, cis_line_id: sequelize_1.DataTypes.STRING, cis_line_short_name: sequelize_1.DataTypes.STRING, cis_trip_number: sequelize_1.DataTypes.INTEGER, gtfs_block_id: sequelize_1.DataTypes.STRING, gtfs_route_id: sequelize_1.DataTypes.STRING, gtfs_route_short_name: sequelize_1.DataTypes.STRING, gtfs_route_type: sequelize_1.DataTypes.INTEGER, gtfs_trip_headsign: sequelize_1.DataTypes.STRING, gtfs_trip_short_name: sequelize_1.DataTypes.STRING, gtfs_trip_id: sequelize_1.DataTypes.STRING, gtfs_date: sequelize_1.DataTypes.DATEONLY, gtfs_direction_id: sequelize_1.DataTypes.SMALLINT, gtfs_shape_id: sequelize_1.DataTypes.STRING(15), // hash(start_timestamp, cis_id, cis_short_name, cis_number); id: { primaryKey: true, type: sequelize_1.DataTypes.STRING, }, is_canceled: sequelize_1.DataTypes.BOOLEAN, last_position_id: sequelize_1.DataTypes.BIGINT, last_position_context: sequelize_1.DataTypes.JSON, origin_route_name: sequelize_1.DataTypes.STRING, run_number: sequelize_1.DataTypes.INTEGER, start_asw_stop_id: sequelize_1.DataTypes.STRING, start_cis_stop_id: sequelize_1.DataTypes.INTEGER, start_cis_stop_platform_code: sequelize_1.DataTypes.STRING, start_time: sequelize_1.DataTypes.TIME, // Převod příjezdu první zastávky na date (pozor, čas 23:59 který přišel v 0:01 bude mít včerejší datum!) start_timestamp: sequelize_1.DataTypes.DATE, end_timestamp: sequelize_1.DataTypes.DATE, vehicle_registration_number: sequelize_1.DataTypes.INTEGER, vehicle_type_id: sequelize_1.DataTypes.INTEGER, wheelchair_accessible: sequelize_1.DataTypes.BOOLEAN, internal_route_name: sequelize_1.DataTypes.STRING(50), internal_run_number: sequelize_1.DataTypes.INTEGER, provider_source_type: sequelize_1.DataTypes.STRING(1), }; VPTripsModel.jsonSchema = { oneOf: [ { type: "array", items: { $ref: "#/definitions/trip", }, }, { $ref: "#/definitions/trip", }, ], definitions: { // @ts-expect-error geometry: schema_definitions_1.SharedSchemaProvider.Geometry, // @ts-expect-error JSONSchemaType does not like type pairings in definitions trip: { title: "trip", description: "Vehicle Positions Trip", type: "object", properties: { cis_line_id: { type: ["string", "null"], }, cis_trip_number: { type: ["number", "null"], }, run_number: { type: ["number", "null"], }, internal_run_number: { type: ["number", "null"], }, cis_line_short_name: { type: ["string", "null"], }, gtfs_route_id: { type: ["string", "null"], }, gtfs_route_short_name: { type: ["string", "null"], }, gtfs_trip_id: { type: ["string", "null"], }, gtfs_date: { oneOf: [ { type: "object", required: ["toISOString"] }, { type: "null", nullable: true }, ], }, gtfs_direction_id: { type: ["number", "null"], }, gtfs_shape_id: { type: ["string", "null"], }, id: { type: "string", }, start_cis_stop_id: { type: ["number", "null"], }, start_cis_stop_platform_code: { type: ["string", "null"], }, start_time: { type: ["string", "null"], }, start_timestamp: { type: ["object", "null"], required: ["toISOString"], }, vehicle_type_id: { type: "number", }, wheelchair_accessible: { type: ["boolean", "null"], }, agency_name_scheduled: { type: ["string", "null"], }, origin_route_name: { type: ["string", "null"], }, internal_route_name: { type: ["string", "null"], }, agency_name_real: { type: ["string", "null"], }, vehicle_registration_number: { type: ["number", "null"], }, gtfs_trip_headsign: { type: ["string", "null"], }, start_asw_stop_id: { type: ["string", "null"], }, gtfs_route_type: { type: ["string", "number", "null"], }, gtfs_block_id: { type: ["string", "null"], }, last_position_id: { type: ["string", "null"], }, is_canceled: { type: ["boolean", "null"], }, end_timestamp: { type: ["object", "null"], required: ["toISOString"], }, gtfs_trip_short_name: { type: ["string", "null"], }, last_position_context: { oneOf: [ { $ref: "#/definitions/context", }, { type: "null", }, ], }, provider_source_type: { type: ["string"], }, }, required: ["id"], }, // @ts-expect-error JSONSchemaType does not like type pairings in definitions context: { title: "context", description: "Last position's context", type: "object", properties: { lastPositionId: { type: ["string", "null"], }, lastPositionLat: { type: ["number", "null"], }, lastPositionLng: { type: ["number", "null"], }, lastStopSequence: { type: ["number", "null"], }, lastPositionOriginTimestamp: { type: ["number", "null"], }, lastPositionTracking: { oneOf: [ { type: "object", properties: { type: { type: "string", enum: ["Feature"], }, properties: { type: "object", // TODO add properties after creating shared schema for VP positions }, geometry: { $ref: "#/definitions/geometry", }, }, required: ["type", "properties", "geometry"], }, { type: "null", }, ], }, lastPositionCanceled: { type: ["boolean", "null"], }, lastPositionLastStop: { type: "object", properties: { id: { type: ["string", "null"], }, sequence: { type: ["number", "null"], }, arrival_time: { type: ["number", "null"], }, departure_time: { type: ["number", "null"], }, }, required: [], }, lastPositionDelay: { type: ["number", "null"], }, atStopStreak: { type: "object", properties: { firstPositionTimestamp: { type: ["number", "null"], }, firstPositionDelay: { type: ["number", "null"], }, stop_sequence: { type: ["number", "null"], }, }, required: [], }, lastPositionBeforeTrackDelayed: { oneOf: [ { type: "object", properties: { delay: { oneOf: [ { type: "number", }, { type: "null", nullable: true, }, ], }, origin_timestamp: { oneOf: [ { type: "object", required: ["toISOString"], }, { type: "string", }, { type: "null", nullable: true, }, ], }, }, }, { type: "null", nullable: true, }, ], }, lastPositionState: { oneOf: [ { type: "string", }, { type: "null", nullable: true, }, ], }, lastPositionStateChange: { oneOf: [ { type: "string", format: "date-time", }, { type: "null", nullable: true, }, ], }, tripId: { type: "string", }, }, required: ["lastPositionLastStop", "atStopStreak", "tripId"], }, }, }; //# sourceMappingURL=VPTripsModel.js.map