@golemio/pid 2.9.1 → 2.9.2-dev.1006277161

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.
@@ -2,4 +2,4 @@ INSERT INTO vehiclepositions_trips (cis_line_id,cis_trip_number,run_number,cis_l
2
2
  (NULL,NULL,20,NULL,concat(CURRENT_DATE,'T03:59:00Z')::timestamp with time zone,'L9','9','9_4832_220502',concat(CURRENT_DATE,'T07:39:00+02:00_9_4832_220502_9366'),concat(CURRENT_DATE,'T03:59:00Z')::timestamp with time zone,NULL,NULL,'07:39:00',concat(CURRENT_DATE,'T05:39:00Z')::timestamp,2,true,NULL,NULL,NULL,NULL,'DP PRAHA','9','DP PRAHA',9366,'Sídliště Řepy',NULL,0,NULL,811532745,TRUE,'2022-07-25T06:32:00.000Z',NULL);
3
3
 
4
4
  INSERT INTO vehiclepositions_positions (id, created_at,delay,delay_stop_arrival,delay_stop_departure,next_stop_id,shape_dist_traveled,is_canceled,lat,lng,origin_time,origin_timestamp,tracking,trips_id,create_batch_id,created_by,update_batch_id,updated_at,updated_by,bearing,cis_last_stop_id,cis_last_stop_sequence,last_stop_id,last_stop_sequence,next_stop_sequence,speed,last_stop_arrival_time,last_stop_departure_time,next_stop_arrival_time,next_stop_departure_time,asw_last_stop_id,state_process,state_position,this_stop_id,this_stop_sequence,tcp_event,last_stop_headsign,last_stop_name,next_stop_name,this_stop_name,valid_to) VALUES
5
- (811532745,concat(CURRENT_DATE,'T03:59:00Z')::timestamp with time zone,0,NULL,NULL,'U694Z1P',0,TRUE,50.06769,14.33621,'06:38:55','2022-07-25T04:38:55.000Z',0,concat(CURRENT_DATE,'T07:39:00+02:00_9_4832_220502_9366'),NULL,NULL,NULL,concat(CURRENT_DATE,'T03:59:00Z')::timestamp with time zone,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,'2022-07-25T05:39:00.000Z','2022-07-25T05:39:00.000Z','06940002','processed','canceled','03940001',NULL,'P',NULL,NULL,NULL,NULL,concat(CURRENT_DATE,'T07:10:00Z')::timestamptz);
5
+ (811532745,concat(CURRENT_DATE,'T03:59:00Z')::timestamp with time zone,0,NULL,NULL,'U694Z1P',0,TRUE,50.06769,14.33621,'06:38:55','2022-07-25T04:38:55.000Z',0,concat(CURRENT_DATE,'T07:39:00+02:00_9_4832_220502_9366'),NULL,NULL,NULL,concat(CURRENT_DATE,'T03:59:00Z')::timestamp with time zone,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,'2022-07-25T05:39:00.000Z','2022-07-25T05:39:00.000Z','06940002','processed','canceled','03940001',NULL,'P',NULL,NULL,NULL,NULL,NULL);
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var dbm;
4
+ var type;
5
+ var seed;
6
+ var fs = require('fs');
7
+ var path = require('path');
8
+ var Promise;
9
+
10
+ /**
11
+ * We receive the dbmigrate dependency from dbmigrate initially.
12
+ * This enables us to not have to rely on NODE_PATH.
13
+ */
14
+ exports.setup = function(options, seedLink) {
15
+ dbm = options.dbmigrate;
16
+ type = dbm.dataType;
17
+ seed = seedLink;
18
+ Promise = options.Promise;
19
+ };
20
+
21
+ exports.up = function(db) {
22
+ var filePath = path.join(__dirname, 'sqls', '20230913112258-departure-boards-optimalization-up.sql');
23
+ return new Promise( function( resolve, reject ) {
24
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
25
+ if (err) return reject(err);
26
+ console.log('received data: ' + data);
27
+
28
+ resolve(data);
29
+ });
30
+ })
31
+ .then(function(data) {
32
+ return db.runSql(data);
33
+ });
34
+ };
35
+
36
+ exports.down = function(db) {
37
+ var filePath = path.join(__dirname, 'sqls', '20230913112258-departure-boards-optimalization-down.sql');
38
+ return new Promise( function( resolve, reject ) {
39
+ fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
40
+ if (err) return reject(err);
41
+ console.log('received data: ' + data);
42
+
43
+ resolve(data);
44
+ });
45
+ })
46
+ .then(function(data) {
47
+ return db.runSql(data);
48
+ });
49
+ };
50
+
51
+ exports._meta = {
52
+ "version": 1
53
+ };
@@ -0,0 +1,2 @@
1
+ drop function get_departures;
2
+ drop view v_vehiclepositions_trip_position_vehicle_info;
@@ -0,0 +1,253 @@
1
+ create view v_vehiclepositions_trip_position_vehicle_info as
2
+ select
3
+ "trip->last_position"."delay" as "delay_seconds",
4
+ "trip"."wheelchair_accessible" as "real_wheelchair_accessible",
5
+ "trip->last_position"."is_canceled" as "is_canceled",
6
+ "trip"."agency_name_real" as "trip.agency_name_real",
7
+ "trip"."agency_name_scheduled" as "trip.agency_name_scheduled",
8
+ "trip"."cis_line_id" as "trip.cis_line_id",
9
+ "trip"."cis_line_short_name" as "trip.cis_line_short_name",
10
+ "trip"."cis_trip_number" as "trip.cis_trip_number",
11
+ "trip"."gtfs_block_id" as "trip.gtfs_block_id",
12
+ "trip"."gtfs_route_id" as "trip.gtfs_route_id",
13
+ "trip"."gtfs_route_short_name" as "trip.gtfs_route_short_name",
14
+ "trip"."gtfs_route_type" as "trip.gtfs_route_type",
15
+ "trip"."gtfs_trip_headsign" as "trip.gtfs_trip_headsign",
16
+ "trip"."gtfs_trip_short_name" as "trip.gtfs_trip_short_name",
17
+ "trip"."gtfs_trip_id" as "trip.gtfs_trip_id",
18
+ "trip"."gtfs_date" as "trip.gtfs_date",
19
+ "trip"."id" as "trip.id",
20
+ "trip"."is_canceled" as "trip.is_canceled",
21
+ "trip"."last_position_id" as "trip.last_position_id",
22
+ "trip"."origin_route_name" as "trip.origin_route_name",
23
+ "trip"."run_number" as "trip.run_number",
24
+ "trip"."start_asw_stop_id" as "trip.start_asw_stop_id",
25
+ "trip"."start_cis_stop_id" as "trip.start_cis_stop_id",
26
+ "trip"."start_cis_stop_platform_code" as "trip.start_cis_stop_platform_code",
27
+ "trip"."start_time" as "trip.start_time",
28
+ "trip"."start_timestamp" as "trip.start_timestamp",
29
+ "trip"."end_timestamp" as "trip.end_timestamp",
30
+ "trip"."vehicle_registration_number" as "trip.vehicle_registration_number",
31
+ "trip"."vehicle_type_id" as "trip.vehicle_type_id",
32
+ "trip"."wheelchair_accessible" as "trip.wheelchair_accessible",
33
+ "trip"."internal_route_name" as "trip.internal_route_name",
34
+ "trip"."internal_run_number" as "trip.internal_run_number",
35
+ "trip->last_position"."asw_last_stop_id" as "trip.last_position.asw_last_stop_id",
36
+ "trip->last_position"."bearing" as "trip.last_position.bearing",
37
+ "trip->last_position"."cis_last_stop_id" as "trip.last_position.cis_last_stop_id",
38
+ "trip->last_position"."cis_last_stop_sequence" as "trip.last_position.cis_last_stop_sequence",
39
+ "trip->last_position"."delay" as "trip.last_position.delay",
40
+ "trip->last_position"."delay_stop_arrival" as "trip.last_position.delay_stop_arrival",
41
+ "trip->last_position"."delay_stop_departure" as "trip.last_position.delay_stop_departure",
42
+ "trip->last_position"."id" as "trip.last_position.id",
43
+ "trip->last_position"."is_canceled" as "trip.last_position.is_canceled",
44
+ "trip->last_position"."last_stop_arrival_time" as "trip.last_position.last_stop_arrival_time",
45
+ "trip->last_position"."last_stop_departure_time" as "trip.last_position.last_stop_departure_time",
46
+ "trip->last_position"."last_stop_id" as "trip.last_position.last_stop_id",
47
+ "trip->last_position"."last_stop_sequence" as "trip.last_position.last_stop_sequence",
48
+ "trip->last_position"."lat" as "trip.last_position.lat",
49
+ "trip->last_position"."lng" as "trip.last_position.lng",
50
+ "trip->last_position"."next_stop_arrival_time" as "trip.last_position.next_stop_arrival_time",
51
+ "trip->last_position"."next_stop_departure_time" as "trip.last_position.next_stop_departure_time",
52
+ "trip->last_position"."next_stop_id" as "trip.last_position.next_stop_id",
53
+ "trip->last_position"."next_stop_sequence" as "trip.last_position.next_stop_sequence",
54
+ "trip->last_position"."origin_time" as "trip.last_position.origin_time",
55
+ "trip->last_position"."origin_timestamp" as "trip.last_position.origin_timestamp",
56
+ "trip->last_position"."shape_dist_traveled" as "trip.last_position.shape_dist_traveled",
57
+ "trip->last_position"."speed" as "trip.last_position.speed",
58
+ "trip->last_position"."state_position" as "trip.last_position.state_position",
59
+ "trip->last_position"."state_process" as "trip.last_position.state_process",
60
+ "trip->last_position"."this_stop_id" as "trip.last_position.this_stop_id",
61
+ "trip->last_position"."this_stop_sequence" as "trip.last_position.this_stop_sequence",
62
+ "trip->last_position"."tracking" as "trip.last_position.tracking",
63
+ "trip->last_position"."trips_id" as "trip.last_position.trips_id",
64
+ "trip->last_position"."tcp_event" as "trip.last_position.tcp_event",
65
+ "trip->last_position"."last_stop_headsign" as "trip.last_position.last_stop_headsign",
66
+ "trip->last_position"."last_stop_name" as "trip.last_position.last_stop_name",
67
+ "trip->last_position"."valid_to" as "trip.last_position.valid_to",
68
+ "trip->last_position"."scheduled_timestamp" as "trip.last_position.scheduled_timestamp",
69
+ "trip->vehicle_descriptor"."id" as "trip.vehicle_descriptor.id",
70
+ "trip->vehicle_descriptor"."is_air_conditioned" as "trip.vehicle_descriptor.is_air_conditioned"
71
+ from
72
+ "vehiclepositions_trips" as "trip"
73
+ inner join "vehiclepositions_positions" as "trip->last_position" on
74
+ "trip"."last_position_id" = "trip->last_position"."id"
75
+ and ("trip->last_position"."valid_to" is null or "trip->last_position"."valid_to" >= current_timestamp)
76
+ and "trip->last_position"."state_position" in ('at_stop', 'before_track', 'before_track_delayed', 'canceled', 'off_track', 'on_track')
77
+ left outer join "vehiclepositions_vehicle_descriptors" as "trip->vehicle_descriptor" on
78
+ "trip"."vehicle_registration_number" = "trip->vehicle_descriptor"."registration_number"
79
+ and trip.gtfs_route_type = "trip->vehicle_descriptor".gtfs_route_type;
80
+
81
+ create function get_departures (
82
+ stopsIds varchar,
83
+ mode int,
84
+ dateDepartureBetweenStart timestamptz,
85
+ dateDepartureBetweenEnd timestamptz,
86
+ isNegativeMinutesBefore int,
87
+ dateCanceledDepartureBetweenStart timestamptz,
88
+ dateCanceledDepartureBetweenEnd timestamptz,
89
+ airconditioninfoenabled int
90
+ )
91
+ returns table (
92
+ departure_datetime_real timestamptz,
93
+ arrival_datetime_real timestamptz,
94
+ stop_sequence int2,
95
+ stop_headsign varchar(70),
96
+ arrival_datetime timestamptz,
97
+ departure_datetime timestamptz,
98
+ stop_id varchar(25),
99
+ platform_code varchar(10),
100
+ wheelchair_boarding int2,
101
+ min_stop_sequence int2,
102
+ max_stop_sequence int2,
103
+ trip_id varchar(50),
104
+ trip_headsign varchar(100),
105
+ trip_short_name varchar(30),
106
+ wheelchair_accessible int2,
107
+ route_short_name varchar(50),
108
+ route_type int2,
109
+ route_id varchar(20),
110
+ is_night bpchar(1),
111
+ is_regional bpchar(1),
112
+ is_substitute_transport bpchar(1),
113
+ next_stop_id varchar(30),
114
+ delay_seconds int4,
115
+ real_wheelchair_accessible bool,
116
+ is_canceled bool,
117
+ "trip.gtfs_trip_short_name" varchar(255),
118
+ "trip.gtfs_date" date,
119
+ "trip.internal_route_name" varchar(50),
120
+ "trip.internal_run_number" int4,
121
+ "trip.last_position.last_stop_id" varchar(255),
122
+ "trip.last_position.last_stop_sequence" int4,
123
+ "trip.last_position.last_stop_name" varchar(255),
124
+ "trip.last_position.this_stop_sequence" int4,
125
+ "trip.vehicle_descriptor.is_air_conditioned" bool,
126
+ delay_minutes int4,
127
+ is_delay_available bool
128
+ )
129
+ language SQL
130
+ set search_path from current
131
+ as $$
132
+ select
133
+ departure_boards_detailed."computed.departure_datetime_real",
134
+ departure_boards_detailed."computed.arrival_datetime_real",
135
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
136
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
137
+ departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
138
+ departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
139
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
140
+ departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
141
+ departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
142
+ departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
143
+ departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
144
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
145
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
146
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
147
+ departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
148
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
149
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
150
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
151
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
152
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
153
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
154
+ departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
155
+ departure_boards_detailed."delay_seconds",
156
+ departure_boards_detailed."real_wheelchair_accessible",
157
+ departure_boards_detailed."is_canceled",
158
+ departure_boards_detailed."trip.gtfs_trip_short_name",
159
+ departure_boards_detailed."trip.gtfs_date",
160
+ departure_boards_detailed."trip.internal_route_name",
161
+ departure_boards_detailed."trip.internal_run_number",
162
+ departure_boards_detailed."trip.last_position.last_stop_id",
163
+ departure_boards_detailed."trip.last_position.last_stop_sequence",
164
+ departure_boards_detailed."trip.last_position.last_stop_name",
165
+ departure_boards_detailed."trip.last_position.this_stop_sequence",
166
+ case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
167
+ TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
168
+ case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available"
169
+ from (
170
+ select
171
+ ("departure_datetime"
172
+ + MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
173
+ - case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
174
+ then least (
175
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
176
+ ("departure_datetime" - "arrival_datetime")::interval
177
+ )
178
+ else MAKE_INTERVAL()
179
+ end
180
+ ) "computed.departure_datetime_real",
181
+ "arrival_datetime" + MAKE_INTERVAL(secs => (
182
+ CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
183
+ )) "computed.arrival_datetime_real",
184
+ "ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
185
+ "ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
186
+ "ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
187
+ "ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
188
+ "ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
189
+ "ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
190
+ "ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
191
+ "ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
192
+ "ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
193
+ "ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
194
+ "ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
195
+ "ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
196
+ "ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
197
+ "ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
198
+ "ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
199
+ "ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
200
+ "ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
201
+ "ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
202
+ "ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
203
+ "ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
204
+ "ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
205
+ "ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
206
+ "ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
207
+ "ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
208
+ "ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
209
+ "ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
210
+ "ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
211
+ "ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
212
+ "ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
213
+ "ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
214
+ x.*
215
+ from
216
+ "ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
217
+ left outer join v_vehiclepositions_trip_position_vehicle_info as x on
218
+ "ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
219
+ and (x."trip.gtfs_date" = ropidgtfs_precomputed_departures.date)
220
+ ) departure_boards_detailed
221
+ where
222
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
223
+ and (
224
+ (
225
+ (
226
+ (mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
227
+ or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
228
+ )
229
+ and
230
+ (
231
+ 0 = isNegativeMinutesBefore
232
+ or ( -- pro záporné minutes before
233
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
234
+ or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
235
+ )
236
+ )
237
+
238
+ )
239
+ or (
240
+ departure_boards_detailed."trip.is_canceled" = true
241
+ and
242
+ (
243
+ (mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
244
+ or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
245
+ )
246
+ )
247
+ ) and
248
+ (
249
+ (mode = 1 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence")) -- mode default/departures
250
+ or (mode=2 and (departure_boards_detailed."ropidgtfs_precomputed_departures.drop_off_type" != '1' and departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" != departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence")) -- mode arrivals
251
+ or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
252
+ );
253
+ $$;
@@ -1,4 +1,3 @@
1
- import { SequelizeModel } from "@golemio/core/dist/output-gateway";
2
1
  import { Moment } from "@golemio/core/dist/shared/moment-timezone";
3
2
  import { DepartureMode, IPIDDeparture } from "..";
4
3
  export interface IDeparturesViewOptions {
@@ -10,10 +9,10 @@ export interface IDeparturesViewOptions {
10
9
  mode: DepartureMode;
11
10
  isAirCondition: boolean;
12
11
  }
13
- export declare class DeparturesRepository extends SequelizeModel {
14
- private tripRepository;
15
- private positionRepository;
16
- private vehicleDescriptorRepository;
12
+ export declare class DeparturesRepository {
13
+ private schema;
14
+ private connector;
15
+ private log;
17
16
  constructor();
18
17
  GetOne(id: any): Promise<any>;
19
18
  /** Retrieves all departures
@@ -22,5 +21,4 @@ export declare class DeparturesRepository extends SequelizeModel {
22
21
  * @returns {Promise<IPIDDeparture[]>} Array of the retrieved records
23
22
  */
24
23
  GetAll(options: IDeparturesViewOptions): Promise<IPIDDeparture[]>;
25
- private composeIncludeForTrip;
26
24
  }
@@ -14,47 +14,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.DeparturesRepository = void 0;
16
16
  const FeatureFlagEnum_1 = require("../../shared/data-access/FeatureFlagEnum");
17
- const PositionRepository_1 = require("../../vehicle-positions/data-access/PositionRepository");
18
- const TripRepository_1 = require("../../vehicle-positions/data-access/TripRepository");
19
- const VehicleDescriptorRepository_1 = require("../../vehicle-positions/data-access/VehicleDescriptorRepository");
20
17
  const const_1 = require("../../../schema-definitions/const");
21
- const precomputed_1 = require("../../../schema-definitions/ropid-gtfs/models/precomputed");
22
- const output_gateway_1 = require("@golemio/core/dist/output-gateway");
23
18
  const data_access_1 = require("@golemio/core/dist/output-gateway/data-access");
24
- const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize"));
19
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
25
20
  const moment_1 = __importDefault(require("moment"));
26
- const const_2 = require("../../../const");
27
21
  const __1 = require("..");
28
- class DeparturesRepository extends output_gateway_1.SequelizeModel {
22
+ const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
23
+ const output_gateway_1 = require("@golemio/core/dist/output-gateway");
24
+ const Di_1 = require("@golemio/core/dist/output-gateway/ioc/Di");
25
+ class DeparturesRepository {
29
26
  constructor() {
30
- super("DeparturesRepository", precomputed_1.DeparturesModel.TABLE_NAME, precomputed_1.DeparturesModel.attributeModel, {
31
- schema: const_1.PG_SCHEMA,
32
- });
33
- this.sequelizeModel.removeAttribute("id");
34
- this.tripRepository = new TripRepository_1.TripRepository();
35
- this.positionRepository = new PositionRepository_1.PositionRepository();
36
- this.vehicleDescriptorRepository = new VehicleDescriptorRepository_1.VehicleDescriptorRepository();
37
- this.sequelizeModel.hasOne(this.tripRepository.sequelizeModel, {
38
- foreignKey: "gtfs_trip_id",
39
- sourceKey: "trip_id",
40
- scope: {
41
- [sequelize_1.default.Op.and]: [sequelize_1.default.literal(`trip.gtfs_date = ${precomputed_1.DeparturesModel.TABLE_NAME}.date`)],
42
- },
43
- as: "trip",
44
- });
45
- this.tripRepository.sequelizeModel.hasOne(this.positionRepository.sequelizeModel, {
46
- foreignKey: "id",
47
- sourceKey: "last_position_id",
48
- as: "last_position",
49
- });
50
- this.tripRepository.sequelizeModel.hasOne(this.vehicleDescriptorRepository.sequelizeModel, {
51
- as: "vehicle_descriptor",
52
- foreignKey: "registration_number",
53
- sourceKey: "vehicle_registration_number",
54
- scope: {
55
- [sequelize_1.default.Op.and]: [sequelize_1.default.literal(`trip.gtfs_route_type = "trip->vehicle_descriptor".gtfs_route_type`)],
56
- },
57
- });
27
+ this.schema = const_1.PG_SCHEMA;
28
+ this.connector = Di_1.OutputGatewayContainer.resolve(CoreToken_1.CoreToken.PostgresConnector);
29
+ this.log = output_gateway_1.log;
58
30
  }
59
31
  GetOne(id) {
60
32
  throw new Error("Method not implemented.");
@@ -67,190 +39,48 @@ class DeparturesRepository extends output_gateway_1.SequelizeModel {
67
39
  GetAll(options) {
68
40
  return __awaiter(this, void 0, void 0, function* () {
69
41
  const isAirConditioningFeatureEnabled = (yield data_access_1.featureFlagService.isFeatureEnabled(FeatureFlagEnum_1.FeatureFlagEnum.PIDEnableAirConditioning, true)) && options.isAirCondition;
70
- // eslint-disable-next-line max-len
71
- const delaySecondsLiteral = `CASE WHEN "trip->last_position"."delay" IS NULL THEN 0 ELSE "trip->last_position"."delay" END`;
72
- const delayMinutesLiteral = `TRUNC("trip->last_position"."delay"::DECIMAL/60, 0)::INT`;
73
- const waitAtStopIntervalLiteral = `("departure_datetime" - "arrival_datetime")::INTERVAL`;
74
- const isDelayAvailableLiteral = `CASE WHEN "trip->last_position"."delay" IS NULL THEN FALSE ELSE TRUE END`;
75
- // Always add delay to the arrival time (even when ahead of time)
76
- const arrivalDatetimeRealLiteral = `"arrival_datetime" + MAKE_INTERVAL(secs => (${delaySecondsLiteral}))`;
77
- // Always add delay to the departure time (even when ahead of time)
78
- // When delayed and waiting at stop, substract the waiting time from the delay
79
- // as long as the result delay is greater than zero
80
- const departureDatetimeRealLiteral = `
81
- "departure_datetime" +
82
- MAKE_INTERVAL(secs => (${delaySecondsLiteral})) -
83
- CASE
84
- WHEN (MAKE_INTERVAL(secs => (${delaySecondsLiteral})) > MAKE_INTERVAL())
85
- THEN LEAST(
86
- MAKE_INTERVAL(secs => (${delaySecondsLiteral})),
87
- ${waitAtStopIntervalLiteral}
88
- )
89
- ELSE MAKE_INTERVAL()
90
- END
91
- `;
92
- let conditionMode = {
93
- [sequelize_1.default.Op.and]: [
94
- {
95
- pickup_type: {
96
- [sequelize_1.default.Op.ne]: "1",
97
- },
98
- },
99
- {
100
- stop_sequence: {
101
- [sequelize_1.default.Op.ne]: sequelize_1.default.col("max_stop_sequence"),
102
- },
103
- },
104
- ],
105
- };
106
- switch (options.mode) {
107
- case __1.DepartureMode.ARRIVALS:
108
- conditionMode = {
109
- [sequelize_1.default.Op.and]: [
110
- {
111
- drop_off_type: {
112
- [sequelize_1.default.Op.ne]: "1",
113
- },
114
- },
115
- {
116
- stop_sequence: {
117
- [sequelize_1.default.Op.ne]: sequelize_1.default.col("min_stop_sequence"),
118
- },
119
- },
120
- ],
121
- };
122
- break;
123
- case __1.DepartureMode.MIXED:
124
- conditionMode = {
125
- pickup_type: {
126
- [sequelize_1.default.Op.ne]: "1",
127
- },
128
- };
129
- break;
130
- }
131
- const conditionTripNotYetDepartured = {
132
- [sequelize_1.default.Op.or]: [
133
- {
134
- stop_sequence: {
135
- [sequelize_1.default.Op.gte]: sequelize_1.default.literal(`"trip->last_position"."last_stop_sequence"`),
136
- },
137
- },
138
- sequelize_1.default.literal(`"trip->last_position"."last_stop_sequence" IS NULL`),
139
- ],
140
- };
141
- const conditionDepartureBetween = sequelize_1.default.where(sequelize_1.default.literal(options.mode === __1.DepartureMode.ARRIVALS ? arrivalDatetimeRealLiteral : departureDatetimeRealLiteral), {
142
- [sequelize_1.default.Op.between]: [
143
- options.currentMoment
144
- .clone()
145
- .add(options.minutesOffset - options.minutesBefore, "minutes")
146
- .toDate(),
147
- options.currentMoment
148
- .clone()
149
- .add(options.minutesOffset + options.minutesAfter, "minutes")
150
- .toDate(),
151
- ],
152
- });
153
- const conditionCanceledTripDepartureSustain = {
154
- [sequelize_1.default.Op.and]: [
155
- sequelize_1.default.literal(`"trip"."is_canceled" = TRUE`),
156
- sequelize_1.default.where(sequelize_1.default.literal(options.mode === __1.DepartureMode.ARRIVALS ? arrivalDatetimeRealLiteral : departureDatetimeRealLiteral), {
157
- [sequelize_1.default.Op.between]: [
158
- moment_1.default
159
- .min([
160
- options.currentMoment.clone().add(options.minutesOffset - options.minutesBefore, "minutes"),
161
- options.currentMoment.clone().add(options.minutesOffset - 3, "minutes"),
162
- ])
163
- .toDate(),
164
- moment_1.default
165
- .max(options.currentMoment.clone().add(options.minutesOffset + options.minutesAfter, "minutes"), options.currentMoment.clone().add(options.minutesOffset + 3, "minutes"))
166
- .toDate(),
167
- ],
168
- }),
169
- ],
170
- };
171
- const whereCondition = {
172
- [sequelize_1.default.Op.and]: [
173
- {
174
- [sequelize_1.default.Op.or]: [
175
- {
176
- [sequelize_1.default.Op.and]: [
177
- conditionDepartureBetween,
178
- options.minutesBefore <= 0 && conditionTripNotYetDepartured,
179
- ],
180
- },
181
- conditionCanceledTripDepartureSustain,
182
- ],
183
- },
184
- conditionMode,
185
- ],
186
- };
187
- return this.sequelizeModel.findAll({
188
- attributes: {
189
- include: [
190
- [sequelize_1.default.literal(`"trip->last_position"."delay"`), "delay_seconds"],
191
- [sequelize_1.default.literal(`"trip"."wheelchair_accessible"`), "real_wheelchair_accessible"],
192
- [sequelize_1.default.literal(`"trip->last_position"."is_canceled"`), "is_canceled"],
193
- [sequelize_1.default.literal(arrivalDatetimeRealLiteral), "arrival_datetime_real"],
194
- [sequelize_1.default.literal(departureDatetimeRealLiteral), "departure_datetime_real"],
195
- [sequelize_1.default.literal(delayMinutesLiteral), "delay_minutes"],
196
- [sequelize_1.default.literal(isDelayAvailableLiteral), "is_delay_available"],
197
- ],
198
- },
199
- where: {
200
- [sequelize_1.default.Op.and]: [
201
- {
202
- stop_id: {
203
- [sequelize_1.default.Op.in]: options.stopsIds,
204
- },
205
- },
206
- whereCondition,
207
- ],
208
- },
209
- include: {
210
- model: this.tripRepository.sequelizeModel,
211
- as: "trip",
212
- required: false,
213
- include: this.composeIncludeForTrip(isAirConditioningFeatureEnabled),
42
+ const dateDepartureBetweenStart = options.currentMoment
43
+ .clone()
44
+ .add(options.minutesOffset - options.minutesBefore, "minutes")
45
+ .toDate();
46
+ const dateDepartureBetweenEnd = options.currentMoment
47
+ .clone()
48
+ .add(options.minutesOffset + options.minutesAfter, "minutes")
49
+ .toDate();
50
+ const dateCanceledDepartureBetweenStart = moment_1.default
51
+ .min([
52
+ options.currentMoment.clone().add(options.minutesOffset - options.minutesBefore, "minutes"),
53
+ options.currentMoment.clone().add(options.minutesOffset - 3, "minutes"),
54
+ ])
55
+ .toDate();
56
+ const dateCanceledDepartureBetweenEnd = moment_1.default
57
+ .max(options.currentMoment.clone().add(options.minutesOffset + options.minutesAfter, "minutes"), options.currentMoment.clone().add(options.minutesOffset + 3, "minutes"))
58
+ .toDate();
59
+ const result = yield this.connector.getConnection().query(`
60
+ SELECT * from ${this.schema}.get_departures(
61
+ $stopsids,
62
+ $mode,
63
+ $datedeparturebetweenstart,
64
+ $datedeparturebetweenend,
65
+ $isnegativeminutesbefore,
66
+ $datecanceleddeparturebetweenstart,
67
+ $datecanceleddeparturebetweenend,
68
+ $airconditioninfoenabled);`, {
69
+ type: sequelize_1.QueryTypes.SELECT,
70
+ bind: {
71
+ stopsids: options.stopsIds.join(","),
72
+ mode: options.mode === __1.DepartureMode.ARRIVALS ? 2 : options.mode === __1.DepartureMode.MIXED ? 3 : 1,
73
+ datedeparturebetweenstart: dateDepartureBetweenStart,
74
+ datedeparturebetweenend: dateDepartureBetweenEnd,
75
+ isnegativeminutesbefore: options.minutesBefore < 0 ? 1 : 0,
76
+ datecanceleddeparturebetweenstart: dateCanceledDepartureBetweenStart,
77
+ datecanceleddeparturebetweenend: dateCanceledDepartureBetweenEnd,
78
+ airconditioninfoenabled: isAirConditioningFeatureEnabled ? 1 : 0,
214
79
  },
215
- raw: true,
216
80
  });
81
+ return result;
217
82
  });
218
83
  }
219
- composeIncludeForTrip(isAirConditioningFeatureEnabled) {
220
- const include = [
221
- {
222
- as: "last_position",
223
- model: this.positionRepository.sequelizeModel,
224
- required: true,
225
- where: {
226
- valid_to: {
227
- [sequelize_1.default.Op.or]: [null, { [sequelize_1.default.Op.gte]: new Date() }],
228
- },
229
- state_position: {
230
- [sequelize_1.default.Op.in]: [
231
- // StatePositionEnum.AFTER_TRACK, // excluding those vehicles after their trip
232
- const_2.StatePositionEnum.AT_STOP,
233
- const_2.StatePositionEnum.BEFORE_TRACK,
234
- const_2.StatePositionEnum.BEFORE_TRACK_DELAYED,
235
- const_2.StatePositionEnum.CANCELED,
236
- // StatePositionEnum.INVISIBLE, // excluding information about trips to be hidden
237
- const_2.StatePositionEnum.OFF_TRACK,
238
- const_2.StatePositionEnum.ON_TRACK,
239
- ],
240
- },
241
- },
242
- },
243
- ];
244
- if (isAirConditioningFeatureEnabled) {
245
- include.push({
246
- as: "vehicle_descriptor",
247
- model: this.vehicleDescriptorRepository.sequelizeModel,
248
- attributes: ["is_air_conditioned"],
249
- required: false,
250
- });
251
- }
252
- return include;
253
- }
254
84
  }
255
85
  exports.DeparturesRepository = DeparturesRepository;
256
86
  //# sourceMappingURL=DeparturesRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/data-access/DeparturesRepository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8EAAyE;AACzE,+FAA0F;AAC1F,uFAAkF;AAClF,iHAA4G;AAC5G,6DAAuC;AACvC,2FAAqE;AACrE,sEAAmE;AACnE,+EAAmF;AAEnF,oFAA6E;AAC7E,oDAA4B;AAC5B,0CAA8C;AAC9C,0BAAkD;AAYlD,MAAa,oBAAqB,SAAQ,+BAAc;IAKpD;QACI,KAAK,CAAC,sBAAsB,EAAE,6BAAe,CAAC,UAAU,EAAE,6BAAe,CAAC,cAAc,EAAE;YACtF,MAAM,EAAE,iBAAS;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,kBAAkB,GAAG,IAAI,uCAAkB,EAAE,CAAC;QACnD,IAAI,CAAC,2BAA2B,GAAG,IAAI,yDAA2B,EAAE,CAAC;QAErE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;YAC3D,UAAU,EAAE,cAAc;YAC1B,SAAS,EAAE,SAAS;YACpB,KAAK,EAAE;gBACH,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAS,CAAC,OAAO,CAAC,oBAAoB,6BAAe,CAAC,UAAU,OAAO,CAAC,CAAC;aACjG;YACD,EAAE,EAAE,MAAM;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE;YAC9E,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,kBAAkB;YAC7B,EAAE,EAAE,eAAe;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,cAAc,EAAE;YACvF,EAAE,EAAE,oBAAoB;YACxB,UAAU,EAAE,qBAAqB;YACjC,SAAS,EAAE,6BAA6B;YACxC,KAAK,EAAE;gBACH,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,mBAAS,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC;aAC/G;SACJ,CAAC,CAAC;IACP,CAAC;IAED,MAAM,CAAC,EAAO;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED;;;;OAIG;IACG,MAAM,CAAC,OAA+B;;YACxC,MAAM,+BAA+B,GACjC,CAAC,MAAM,gCAAkB,CAAC,gBAAgB,CAAC,iCAAe,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC;YAE1H,mCAAmC;YACnC,MAAM,mBAAmB,GAAG,+FAA+F,CAAC;YAC5H,MAAM,mBAAmB,GAAG,0DAA0D,CAAC;YACvF,MAAM,yBAAyB,GAAG,uDAAuD,CAAC;YAC1F,MAAM,uBAAuB,GAAG,0EAA0E,CAAC;YAE3G,iEAAiE;YACjE,MAAM,0BAA0B,GAAG,+CAA+C,mBAAmB,IAAI,CAAC;YAE1G,mEAAmE;YACnE,8EAA8E;YAC9E,qDAAqD;YACrD,MAAM,4BAA4B,GAAG;;qCAER,mBAAmB;;+CAET,mBAAmB;;6CAErB,mBAAmB;sBAC1C,yBAAyB;;;;SAItC,CAAC;YAEF,IAAI,aAAa,GAAQ;gBACrB,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;oBAChB;wBACI,WAAW,EAAE;4BACT,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;yBACzB;qBACJ;oBACD;wBACI,aAAa,EAAE;4BACX,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC;yBACxD;qBACJ;iBACJ;aACJ,CAAC;YACF,QAAQ,OAAO,CAAC,IAAI,EAAE;gBAClB,KAAK,iBAAa,CAAC,QAAQ;oBACvB,aAAa,GAAG;wBACZ,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;4BAChB;gCACI,aAAa,EAAE;oCACX,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;iCACzB;6BACJ;4BACD;gCACI,aAAa,EAAE;oCACX,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC;iCACxD;6BACJ;yBACJ;qBACJ,CAAC;oBACF,MAAM;gBACV,KAAK,iBAAa,CAAC,KAAK;oBACpB,aAAa,GAAG;wBACZ,WAAW,EAAE;4BACT,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG;yBACzB;qBACJ,CAAC;oBACF,MAAM;aACb;YAED,MAAM,6BAA6B,GAAG;gBAClC,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;oBACf;wBACI,aAAa,EAAE;4BACX,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,mBAAS,CAAC,OAAO,CAAC,4CAA4C,CAAC;yBACtF;qBACJ;oBACD,mBAAS,CAAC,OAAO,CAAC,oDAAoD,CAAC;iBAC1E;aACJ,CAAC;YACF,MAAM,yBAAyB,GAAG,mBAAS,CAAC,KAAK,CAC7C,mBAAS,CAAC,OAAO,CACb,OAAO,CAAC,IAAI,KAAK,iBAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,4BAA4B,CACtG,EACD;gBACI,CAAC,mBAAS,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;oBACpB,OAAO,CAAC,aAAa;yBAChB,KAAK,EAAE;yBACP,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC;yBAC7D,MAAM,EAAE;oBACb,OAAO,CAAC,aAAa;yBAChB,KAAK,EAAE;yBACP,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC;yBAC5D,MAAM,EAAE;iBAChB;aACJ,CACJ,CAAC;YACF,MAAM,qCAAqC,GAAG;gBAC1C,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;oBAChB,mBAAS,CAAC,OAAO,CAAC,6BAA6B,CAAC;oBAChD,mBAAS,CAAC,KAAK,CACX,mBAAS,CAAC,OAAO,CACb,OAAO,CAAC,IAAI,KAAK,iBAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,4BAA4B,CACtG,EACD;wBACI,CAAC,mBAAS,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE;4BACpB,gBAAM;iCACD,GAAG,CAAC;gCACD,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC;gCAC3F,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,SAAS,CAAC;6BAC1E,CAAC;iCACD,MAAM,EAAE;4BACb,gBAAM;iCACD,GAAG,CACA,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,EAC1F,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,EAAE,SAAS,CAAC,CAC1E;iCACA,MAAM,EAAE;yBAChB;qBACJ,CACJ;iBACJ;aACJ,CAAC;YAEF,MAAM,cAAc,GAAG;gBACnB,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;oBAChB;wBACI,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;4BACf;gCACI,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;oCAChB,yBAAyB;oCACzB,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,6BAA6B;iCAC9D;6BACJ;4BACD,qCAAqC;yBACxC;qBACJ;oBACD,aAAa;iBAChB;aACJ,CAAC;YAEF,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;gBAC/B,UAAU,EAAE;oBACR,OAAO,EAAE;wBACL,CAAC,mBAAS,CAAC,OAAO,CAAC,+BAA+B,CAAC,EAAE,eAAe,CAAC;wBACrE,CAAC,mBAAS,CAAC,OAAO,CAAC,gCAAgC,CAAC,EAAE,4BAA4B,CAAC;wBACnF,CAAC,mBAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC,EAAE,aAAa,CAAC;wBACzE,CAAC,mBAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC,EAAE,uBAAuB,CAAC;wBACxE,CAAC,mBAAS,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE,yBAAyB,CAAC;wBAC5E,CAAC,mBAAS,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,eAAe,CAAC;wBACzD,CAAC,mBAAS,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,oBAAoB,CAAC;qBACrE;iBACJ;gBACD,KAAK,EAAE;oBACH,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;wBAChB;4BACI,OAAO,EAAE;gCACL,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ;6BACtC;yBACJ;wBACD,cAAc;qBACjB;iBACJ;gBACD,OAAO,EAAE;oBACL,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,cAAc;oBACzC,EAAE,EAAE,MAAM;oBACV,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,+BAA+B,CAAC;iBACvE;gBACD,GAAG,EAAE,IAAI;aACZ,CAA6B,CAAC;QACnC,CAAC;KAAA;IAEO,qBAAqB,CAAC,+BAAwC;QAClE,MAAM,OAAO,GAAkB;YAC3B;gBACI,EAAE,EAAE,eAAe;gBACnB,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,cAAc;gBAC7C,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE;oBACH,QAAQ,EAAE;wBACN,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAS,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;qBAChE;oBACD,cAAc,EAAE;wBACZ,CAAC,mBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;4BACf,8EAA8E;4BAC9E,yBAAiB,CAAC,OAAO;4BACzB,yBAAiB,CAAC,YAAY;4BAC9B,yBAAiB,CAAC,oBAAoB;4BACtC,yBAAiB,CAAC,QAAQ;4BAC1B,iFAAiF;4BACjF,yBAAiB,CAAC,SAAS;4BAC3B,yBAAiB,CAAC,QAAQ;yBAC7B;qBACJ;iBACJ;aACJ;SACJ,CAAC;QAEF,IAAI,+BAA+B,EAAE;YACjC,OAAO,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,oBAAoB;gBACxB,KAAK,EAAE,IAAI,CAAC,2BAA2B,CAAC,cAAc;gBACtD,UAAU,EAAE,CAAC,oBAAoB,CAAC;gBAClC,QAAQ,EAAE,KAAK;aAClB,CAAC,CAAC;SACN;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;CACJ;AAlQD,oDAkQC"}
1
+ {"version":3,"file":"DeparturesRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/pid/data-access/DeparturesRepository.ts"],"names":[],"mappings":"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"}
@@ -1,78 +1,41 @@
1
+ import { GtfsStopWheelchairBoardingEnum, GtfsTripWheelchairAccessEnum } from "../../helpers/AccessibilityEnums";
1
2
  import { GTFSRouteTypeEnum } from "../../helpers/RouteTypeEnums";
2
3
  import { DeparturesDirectionsEnum } from "../../schema-definitions/ropid-departures-directions";
3
- import { IDeparturesModel } from "../../schema-definitions/ropid-gtfs/models/precomputed/interfaces/IDeparturesModel";
4
- import { StatePositionEnum, StateProcessEnum } from "../../const";
5
4
  export * from "./PIDRouter";
6
5
  export * from "./models";
7
- export interface IPIDDeparture extends IDeparturesModel {
6
+ export interface IPIDDeparture {
7
+ stop_sequence: number;
8
+ stop_headsign: string | null;
9
+ arrival_datetime: Date | null;
10
+ departure_datetime: Date | null;
11
+ stop_id: string;
12
+ platform_code: string | null;
13
+ wheelchair_boarding: GtfsStopWheelchairBoardingEnum | null;
14
+ min_stop_sequence: number | null;
15
+ max_stop_sequence: number | null;
16
+ trip_id: string;
17
+ trip_headsign: string;
18
+ trip_short_name: string | null;
19
+ wheelchair_accessible: GtfsTripWheelchairAccessEnum | null;
20
+ route_short_name: string | null;
21
+ route_type: GTFSRouteTypeEnum;
22
+ route_id: string | null;
23
+ is_night: string | null;
24
+ is_regional: string | null;
25
+ is_substitute_transport: string | null;
26
+ next_stop_id: string | null;
8
27
  direction: DeparturesDirectionsEnum | null;
9
28
  delay_seconds: number | null;
10
29
  delay_minutes: number | null;
11
30
  is_delay_available: boolean;
12
31
  arrival_datetime_real: Date | null;
13
32
  departure_datetime_real: Date | null;
14
- state_position: string;
15
33
  real_wheelchair_accessible: boolean | null;
16
34
  is_canceled: boolean;
17
- "trip.agency_name_real": string | null;
18
- "trip.agency_name_scheduled": string | null;
19
- "trip.cis_line_id": string | null;
20
- "trip.cis_line_short_name": string | null;
21
- "trip.cis_trip_number": string | null;
22
- "trip.gtfs_block_id": string | null;
23
- "trip.gtfs_route_id": string | null;
24
- "trip.gtfs_route_short_name": string | null;
25
- "trip.gtfs_route_type": GTFSRouteTypeEnum | null;
26
- "trip.gtfs_trip_headsign": string | null;
27
- "trip.gtfs_trip_id": string | null;
28
- "trip.id": string | null;
29
- "trip.is_canceled": string | null;
30
- "trip.last_position_id": string | null;
31
- "trip.origin_route_name": string | null;
32
- "trip.run_number": string | null;
33
- "trip.start_asw_stop_id": string | null;
34
- "trip.start_cis_stop_id": string | null;
35
- "trip.start_cis_stop_platform_code": string | null;
36
- "trip.start_time": string | null;
37
- "trip.start_timestamp": string | null;
38
- "trip.end_timestamp": string | null;
39
- "trip.vehicle_registration_number": string | null;
40
- "trip.vehicle_type_id": string | null;
41
- "trip.wheelchair_accessible": string | null;
42
- "trip.last_position.asw_last_stop_id": string | null;
43
- "trip.last_position.bearing": number | null;
44
- "trip.last_position.cis_last_stop_id": string | null;
45
- "trip.last_position.cis_last_stop_sequence": number | null;
46
- "trip.last_position.delay": number | null;
47
- "trip.last_position.delay_stop_arrival": string | null;
48
- "trip.last_position.delay_stop_departure": string | null;
49
- "trip.last_position.id": string | null;
50
- "trip.last_position.is_canceled": string | null;
51
- "trip.last_position.last_stop_arrival_time": string | null;
52
- "trip.last_position.last_stop_departure_time": string | null;
53
35
  "trip.last_position.last_stop_id": string | null;
54
36
  "trip.last_position.last_stop_sequence": number | null;
55
37
  "trip.last_position.last_stop_name": string | null;
56
- "trip.last_position.lat": string | null;
57
- "trip.last_position.lng": string | null;
58
- "trip.last_position.next_stop_arrival_time": string | null;
59
- "trip.last_position.next_stop_departure_time": string | null;
60
- "trip.last_position.next_stop_id": string | null;
61
- "trip.last_position.next_stop_sequence": number | null;
62
- "trip.last_position.next_stop_name": string | null;
63
- "trip.last_position.origin_time": string | null;
64
- "trip.last_position.origin_timestamp": string | null;
65
- "trip.last_position.shape_dist_traveled": string | null;
66
- "trip.last_position.speed": number | null;
67
- "trip.last_position.state_position": StatePositionEnum | null;
68
- "trip.last_position.state_process": StateProcessEnum | null;
69
- "trip.last_position.this_stop_id": string | null;
70
38
  "trip.last_position.this_stop_sequence": number | null;
71
- "trip.last_position.this_stop_name": string | null;
72
- "trip.last_position.tracking": number | null;
73
- "trip.last_position.trips_id": string | null;
74
- "trip.last_position.tcp_event": string | null;
75
- "trip.last_position.last_stop_headsign": string | null;
76
39
  "trip.vehicle_descriptor.is_air_conditioned"?: boolean | null;
77
40
  }
78
41
  export interface IPIDDepartureOutput {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAKA,8CAA4B;AAC5B,2CAAyB;AAqHzB,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,yCAAuB,CAAA;AAC3B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,2CAAwB,CAAA;IACxB,0DAAuC,CAAA;IACvC,oDAAiC,CAAA;IACjC,mEAAgD,CAAA;IAChD,qEAAkD,CAAA;IAClD,8EAA2D,CAAA;AAC/D,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,mCAAkB,CAAA;IAClB,8BAA8B;AAClC,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/output-gateway/pid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAMA,8CAA4B;AAC5B,2CAAyB;AAiFzB,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,0CAAyB,CAAA;IACzB,sCAAqB,CAAA;IACrB,gCAAe,CAAA;AACnB,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAED,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,+BAAa,CAAA;IACb,yCAAuB,CAAA;AAC3B,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,eAQX;AARD,WAAY,eAAe;IACvB,gCAAa,CAAA;IACb,2CAAwB,CAAA;IACxB,0DAAuC,CAAA;IACvC,oDAAiC,CAAA;IACjC,mEAAgD,CAAA;IAChD,qEAAkD,CAAA;IAClD,8EAA2D,CAAA;AAC/D,CAAC,EARW,eAAe,+BAAf,eAAe,QAQ1B;AAED,IAAY,aAKX;AALD,WAAY,aAAa;IACrB,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,mCAAkB,CAAA;IAClB,8BAA8B;AAClC,CAAC,EALW,aAAa,6BAAb,aAAa,QAKxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/pid",
3
- "version": "2.9.1",
3
+ "version": "2.9.2-dev.1006277161",
4
4
  "description": "Golemio PID Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -85,4 +85,4 @@
85
85
  "html-entities": "^2.3.3",
86
86
  "pg-copy-streams": "^5.1.1"
87
87
  }
88
- }
88
+ }