@golemio/pid 5.8.3-dev.2434465933 → 5.8.3-dev.2434601844

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.
@@ -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', '20260407082406-add-new-columns-to-getDepartures()-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', '20260407082406-add-new-columns-to-getDepartures()-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,152 @@
1
+ DROP FUNCTION pid.get_departures(varchar, int4, timestamptz, timestamptz, int4, timestamptz, timestamptz, int4);
2
+
3
+ CREATE FUNCTION pid.get_departures(stopsids character varying, mode integer, datedeparturebetweenstart timestamp with time zone, datedeparturebetweenend timestamp with time zone, isnegativeminutesbefore integer, datecanceleddeparturebetweenstart timestamp with time zone, datecanceleddeparturebetweenend timestamp with time zone, airconditioninfoenabled integer)
4
+ RETURNS TABLE(departure_datetime_real timestamp with time zone, arrival_datetime_real timestamp with time zone, stop_sequence smallint, stop_headsign character varying, arrival_datetime timestamp with time zone, departure_datetime timestamp with time zone, stop_id character varying, platform_code character varying, wheelchair_boarding smallint, min_stop_sequence smallint, max_stop_sequence smallint, trip_id character varying, trip_headsign character varying, trip_short_name character varying, wheelchair_accessible smallint, route_short_name character varying, route_type smallint, route_id character varying, is_night character, is_regional character, is_substitute_transport character, next_stop_id character varying, delay_seconds integer, real_wheelchair_accessible boolean, is_canceled boolean, "trip.gtfs_trip_short_name" character varying, "trip.gtfs_date" date, "trip.internal_route_name" character varying, "trip.internal_run_number" integer, "trip.start_timestamp" timestamp with time zone, "trip.last_position.state_position" character varying, "trip.last_position.last_stop_id" character varying, "trip.last_position.last_stop_sequence" integer, "trip.last_position.last_stop_name" character varying, "trip.last_position.this_stop_sequence" integer, "trip.cis_stop_platform_code" character varying, "trip.vehicle_descriptor.is_air_conditioned" boolean, delay_minutes integer, is_delay_available boolean, run_number integer, planned_start_timestamp timestamp with time zone)
5
+ LANGUAGE sql
6
+ SET search_path TO 'pid', 'public'
7
+ AS $function$
8
+ select
9
+ departure_boards_detailed."computed.departure_datetime_real",
10
+ departure_boards_detailed."computed.arrival_datetime_real",
11
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
12
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
13
+ departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
14
+ departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
15
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
16
+ departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
17
+ departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
18
+ departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
19
+ departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
20
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
21
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
22
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
23
+ departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
24
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
25
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
26
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
27
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
28
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
29
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
30
+ departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
31
+ departure_boards_detailed."delay_seconds",
32
+ departure_boards_detailed."real_wheelchair_accessible",
33
+ departure_boards_detailed."is_canceled",
34
+ departure_boards_detailed."trip.gtfs_trip_short_name",
35
+ departure_boards_detailed."trip.gtfs_date",
36
+ departure_boards_detailed."trip.internal_route_name",
37
+ departure_boards_detailed."trip.internal_run_number",
38
+ departure_boards_detailed."trip.start_timestamp",
39
+ departure_boards_detailed."trip.last_position.state_position",
40
+ departure_boards_detailed."trip.last_position.last_stop_id",
41
+ departure_boards_detailed."trip.last_position.last_stop_sequence",
42
+ departure_boards_detailed."trip.last_position.last_stop_name",
43
+ departure_boards_detailed."trip.last_position.this_stop_sequence",
44
+ departure_boards_detailed.cis_stop_platform_code as "trip.cis_stop_platform_code",
45
+ case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
46
+ TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
47
+ case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available",
48
+ departure_boards_detailed."run.run_number",
49
+ departure_boards_detailed.planned_start_timestamp
50
+
51
+ from (
52
+ select
53
+ ("departure_datetime"
54
+ + MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
55
+ - case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
56
+ then least (
57
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
58
+ ("departure_datetime" - "arrival_datetime")::interval
59
+ )
60
+ else MAKE_INTERVAL()
61
+ end
62
+ ) "computed.departure_datetime_real",
63
+ "arrival_datetime" + MAKE_INTERVAL(secs => (
64
+ CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
65
+ )) "computed.arrival_datetime_real",
66
+ "ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
67
+ "ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
68
+ "ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
69
+ "ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
70
+ "ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
71
+ "ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
72
+ "ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
73
+ "ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
74
+ "ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
75
+ "ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
76
+ "ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
77
+ "ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
78
+ "ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
79
+ "ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
80
+ "ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
81
+ "ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
82
+ "ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
83
+ "ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
84
+ "ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
85
+ "ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
86
+ "ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
87
+ "ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
88
+ "ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
89
+ "ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
90
+ "ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
91
+ "ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
92
+ "ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
93
+ "ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
94
+ "ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
95
+ "ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
96
+ plan_start.planned_departure AS planned_start_timestamp,
97
+ x.*,
98
+ cis_stop.cis_stop_platform_code as "cis_stop_platform_code",
99
+ run.run_number as "run.run_number"
100
+ from
101
+ "ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
102
+ left join "ropidgtfs_run_numbers" as run on
103
+ "ropidgtfs_precomputed_departures"."trip_id" = run.trip_id
104
+ and "ropidgtfs_precomputed_departures"."service_id" = run.service_id
105
+ left outer join v_vehiclepositions_trip_position_vehicle_info as x on
106
+ "ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
107
+ left join lateral (
108
+ select pd.departure_datetime as planned_departure
109
+ from ropidgtfs_precomputed_departures pd
110
+ where pd.trip_id = "ropidgtfs_precomputed_departures".trip_id
111
+ and pd.date = "ropidgtfs_precomputed_departures".date
112
+ and pd.stop_sequence = 1
113
+ limit 1
114
+ ) as plan_start on true
115
+ left join vehiclepositions_cis_stops as cis_stop on
116
+ cis_stop.rt_trip_id = x."trip.id"
117
+ and cis_stop.cis_stop_group_id = "ropidgtfs_precomputed_departures"."cis_stop_group_id"
118
+ ) departure_boards_detailed
119
+ where
120
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
121
+ and (
122
+ (
123
+ (
124
+ (mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
125
+ or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
126
+ )
127
+ and
128
+ (
129
+ 0 = isNegativeMinutesBefore
130
+ or ( -- pro záporné minutes before
131
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
132
+ or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
133
+ )
134
+ )
135
+
136
+ )
137
+ or (
138
+ departure_boards_detailed."trip.is_canceled" = true
139
+ and
140
+ (
141
+ (mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
142
+ or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
143
+ )
144
+ )
145
+ ) and
146
+ (
147
+ (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
148
+ 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
149
+ or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
150
+ );
151
+ $function$
152
+ ;
@@ -0,0 +1,158 @@
1
+ DROP FUNCTION pid.get_departures(varchar, int4, timestamptz, timestamptz, int4, timestamptz, timestamptz, int4);
2
+
3
+ CREATE FUNCTION pid.get_departures(stopsids character varying, mode integer, datedeparturebetweenstart timestamp with time zone, datedeparturebetweenend timestamp with time zone, isnegativeminutesbefore integer, datecanceleddeparturebetweenstart timestamp with time zone, datecanceleddeparturebetweenend timestamp with time zone, airconditioninfoenabled integer)
4
+ RETURNS TABLE(departure_datetime_real timestamp with time zone, arrival_datetime_real timestamp with time zone, stop_sequence smallint, stop_headsign character varying, arrival_datetime timestamp with time zone, departure_datetime timestamp with time zone, stop_id character varying, platform_code character varying, wheelchair_boarding smallint, min_stop_sequence smallint, max_stop_sequence smallint, trip_id character varying, trip_headsign character varying, trip_short_name character varying, wheelchair_accessible smallint, route_short_name character varying, route_type smallint, route_id character varying, is_night character, is_regional character, is_substitute_transport character, next_stop_id character varying, next_route_short_name text, next_trip_headsign text, max_stop_sequence_with_stop_headsign integer, delay_seconds integer, real_wheelchair_accessible boolean, is_canceled boolean, "trip.gtfs_trip_short_name" character varying, "trip.gtfs_date" date, "trip.internal_route_name" character varying, "trip.internal_run_number" integer, "trip.start_timestamp" timestamp with time zone, "trip.last_position.state_position" character varying, "trip.last_position.last_stop_id" character varying, "trip.last_position.last_stop_sequence" integer, "trip.last_position.last_stop_name" character varying, "trip.last_position.this_stop_sequence" integer, "trip.cis_stop_platform_code" character varying, "trip.vehicle_descriptor.is_air_conditioned" boolean, delay_minutes integer, is_delay_available boolean, run_number integer, planned_start_timestamp timestamp with time zone)
5
+ LANGUAGE sql
6
+ SET search_path TO 'pid', 'public'
7
+ AS $function$
8
+ select
9
+ departure_boards_detailed."computed.departure_datetime_real",
10
+ departure_boards_detailed."computed.arrival_datetime_real",
11
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence",
12
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_headsign",
13
+ departure_boards_detailed."ropidgtfs_precomputed_departures.arrival_datetime",
14
+ departure_boards_detailed."ropidgtfs_precomputed_departures.departure_datetime",
15
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id",
16
+ departure_boards_detailed."ropidgtfs_precomputed_departures.platform_code",
17
+ departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_boarding",
18
+ departure_boards_detailed."ropidgtfs_precomputed_departures.min_stop_sequence",
19
+ departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence",
20
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_id",
21
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_headsign",
22
+ departure_boards_detailed."ropidgtfs_precomputed_departures.trip_short_name",
23
+ departure_boards_detailed."ropidgtfs_precomputed_departures.wheelchair_accessible",
24
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_short_name",
25
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_type",
26
+ departure_boards_detailed."ropidgtfs_precomputed_departures.route_id",
27
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_night",
28
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_regional",
29
+ departure_boards_detailed."ropidgtfs_precomputed_departures.is_substitute_transport",
30
+ departure_boards_detailed."ropidgtfs_precomputed_departures.next_stop_id",
31
+ departure_boards_detailed."ropidgtfs_precomputed_departures.next_route_short_name",
32
+ departure_boards_detailed."ropidgtfs_precomputed_departures.next_trip_headsign",
33
+ departure_boards_detailed."ropidgtfs_precomputed_departures.max_stop_sequence_with_stop_headsign",
34
+ departure_boards_detailed."delay_seconds",
35
+ departure_boards_detailed."real_wheelchair_accessible",
36
+ departure_boards_detailed."is_canceled",
37
+ departure_boards_detailed."trip.gtfs_trip_short_name",
38
+ departure_boards_detailed."trip.gtfs_date",
39
+ departure_boards_detailed."trip.internal_route_name",
40
+ departure_boards_detailed."trip.internal_run_number",
41
+ departure_boards_detailed."trip.start_timestamp",
42
+ departure_boards_detailed."trip.last_position.state_position",
43
+ departure_boards_detailed."trip.last_position.last_stop_id",
44
+ departure_boards_detailed."trip.last_position.last_stop_sequence",
45
+ departure_boards_detailed."trip.last_position.last_stop_name",
46
+ departure_boards_detailed."trip.last_position.this_stop_sequence",
47
+ departure_boards_detailed.cis_stop_platform_code as "trip.cis_stop_platform_code",
48
+ case when airconditioninfoenabled = 1 then departure_boards_detailed."trip.vehicle_descriptor.is_air_conditioned" else NULL end,
49
+ TRUNC(departure_boards_detailed."trip.last_position.delay"::DECIMAL / 60, 0)::int as "delay_minutes",
50
+ case when departure_boards_detailed."trip.last_position.delay" is null then false else true end as "is_delay_available",
51
+ departure_boards_detailed."run.run_number",
52
+ departure_boards_detailed.planned_start_timestamp
53
+
54
+ from (
55
+ select
56
+ ("departure_datetime"
57
+ + MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end))
58
+ - case when (MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)) > MAKE_INTERVAL())
59
+ then least (
60
+ MAKE_INTERVAL(secs => (case when "trip.last_position.delay" is null then 0 else "trip.last_position.delay" end)),
61
+ ("departure_datetime" - "arrival_datetime")::interval
62
+ )
63
+ else MAKE_INTERVAL()
64
+ end
65
+ ) "computed.departure_datetime_real",
66
+ "arrival_datetime" + MAKE_INTERVAL(secs => (
67
+ CASE WHEN "trip.last_position.delay" IS NULL THEN 0 ELSE "trip.last_position.delay" end
68
+ )) "computed.arrival_datetime_real",
69
+ "ropidgtfs_precomputed_departures"."stop_sequence" as "ropidgtfs_precomputed_departures.stop_sequence",
70
+ "ropidgtfs_precomputed_departures"."stop_headsign" as "ropidgtfs_precomputed_departures.stop_headsign",
71
+ "ropidgtfs_precomputed_departures"."pickup_type" as "ropidgtfs_precomputed_departures.pickup_type",
72
+ "ropidgtfs_precomputed_departures"."drop_off_type" as "ropidgtfs_precomputed_departures.drop_off_type",
73
+ "ropidgtfs_precomputed_departures"."arrival_time" as "ropidgtfs_precomputed_departures.arrival_time",
74
+ "ropidgtfs_precomputed_departures"."arrival_datetime" as "ropidgtfs_precomputed_departures.arrival_datetime",
75
+ "ropidgtfs_precomputed_departures"."departure_time" as "ropidgtfs_precomputed_departures.departure_time",
76
+ "ropidgtfs_precomputed_departures"."departure_datetime" as "ropidgtfs_precomputed_departures.departure_datetime",
77
+ "ropidgtfs_precomputed_departures"."stop_id" as "ropidgtfs_precomputed_departures.stop_id",
78
+ "ropidgtfs_precomputed_departures"."stop_name" as "ropidgtfs_precomputed_departures.stop_name",
79
+ "ropidgtfs_precomputed_departures"."platform_code" as "ropidgtfs_precomputed_departures.platform_code",
80
+ "ropidgtfs_precomputed_departures"."wheelchair_boarding" as "ropidgtfs_precomputed_departures.wheelchair_boarding",
81
+ "ropidgtfs_precomputed_departures"."min_stop_sequence" as "ropidgtfs_precomputed_departures.min_stop_sequence",
82
+ "ropidgtfs_precomputed_departures"."max_stop_sequence" as "ropidgtfs_precomputed_departures.max_stop_sequence",
83
+ "ropidgtfs_precomputed_departures"."trip_id" as "ropidgtfs_precomputed_departures.trip_id",
84
+ "ropidgtfs_precomputed_departures"."trip_headsign" as "ropidgtfs_precomputed_departures.trip_headsign",
85
+ "ropidgtfs_precomputed_departures"."trip_short_name" as "ropidgtfs_precomputed_departures.trip_short_name",
86
+ "ropidgtfs_precomputed_departures"."wheelchair_accessible" as "ropidgtfs_precomputed_departures.wheelchair_accessible",
87
+ "ropidgtfs_precomputed_departures"."service_id" as "ropidgtfs_precomputed_departures.service_id",
88
+ "ropidgtfs_precomputed_departures"."date" as "ropidgtfs_precomputed_departures.date",
89
+ "ropidgtfs_precomputed_departures"."route_short_name" as "ropidgtfs_precomputed_departures.route_short_name",
90
+ "ropidgtfs_precomputed_departures"."route_type" as "ropidgtfs_precomputed_departures.route_type",
91
+ "ropidgtfs_precomputed_departures"."route_id" as "ropidgtfs_precomputed_departures.route_id",
92
+ "ropidgtfs_precomputed_departures"."is_night" as "ropidgtfs_precomputed_departures.is_night",
93
+ "ropidgtfs_precomputed_departures"."is_regional" as "ropidgtfs_precomputed_departures.is_regional",
94
+ "ropidgtfs_precomputed_departures"."is_substitute_transport" as "ropidgtfs_precomputed_departures.is_substitute_transport",
95
+ "ropidgtfs_precomputed_departures"."next_stop_sequence" as "ropidgtfs_precomputed_departures.next_stop_sequence",
96
+ "ropidgtfs_precomputed_departures"."next_stop_id" as "ropidgtfs_precomputed_departures.next_stop_id",
97
+ "ropidgtfs_precomputed_departures"."last_stop_sequence" as "ropidgtfs_precomputed_departures.last_stop_sequence",
98
+ "ropidgtfs_precomputed_departures"."last_stop_id" as "ropidgtfs_precomputed_departures.last_stop_id",
99
+ "ropidgtfs_precomputed_departures"."next_route_short_name" as "ropidgtfs_precomputed_departures.next_route_short_name",
100
+ "ropidgtfs_precomputed_departures"."next_trip_headsign" as "ropidgtfs_precomputed_departures.next_trip_headsign",
101
+ "ropidgtfs_precomputed_departures"."max_stop_sequence_with_stop_headsign" as "ropidgtfs_precomputed_departures.max_stop_sequence_with_stop_headsign",
102
+ plan_start.planned_departure AS planned_start_timestamp,
103
+ x.*,
104
+ cis_stop.cis_stop_platform_code as "cis_stop_platform_code",
105
+ run.run_number as "run.run_number"
106
+ from
107
+ "ropidgtfs_precomputed_departures" as "ropidgtfs_precomputed_departures"
108
+ left join "ropidgtfs_run_numbers" as run on
109
+ "ropidgtfs_precomputed_departures"."trip_id" = run.trip_id
110
+ and "ropidgtfs_precomputed_departures"."service_id" = run.service_id
111
+ left outer join v_vehiclepositions_trip_position_vehicle_info as x on
112
+ "ropidgtfs_precomputed_departures"."trip_id" = x."trip.gtfs_trip_id"
113
+ left join lateral (
114
+ select pd.departure_datetime as planned_departure
115
+ from ropidgtfs_precomputed_departures pd
116
+ where pd.trip_id = "ropidgtfs_precomputed_departures".trip_id
117
+ and pd.date = "ropidgtfs_precomputed_departures".date
118
+ and pd.stop_sequence = 1
119
+ limit 1
120
+ ) as plan_start on true
121
+ left join vehiclepositions_cis_stops as cis_stop on
122
+ cis_stop.rt_trip_id = x."trip.id"
123
+ and cis_stop.cis_stop_group_id = "ropidgtfs_precomputed_departures"."cis_stop_group_id"
124
+ ) departure_boards_detailed
125
+ where
126
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_id" = ANY(STRING_TO_ARRAY(stopsIds,','))
127
+ and (
128
+ (
129
+ (
130
+ (mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
131
+ or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateDepartureBetweenStart and dateDepartureBetweenEnd)
132
+ )
133
+ and
134
+ (
135
+ 0 = isNegativeMinutesBefore
136
+ or ( -- pro záporné minutes before
137
+ departure_boards_detailed."ropidgtfs_precomputed_departures.stop_sequence" >= departure_boards_detailed."trip.last_position.last_stop_sequence"
138
+ or departure_boards_detailed."trip.last_position.last_stop_sequence" IS null
139
+ )
140
+ )
141
+
142
+ )
143
+ or (
144
+ departure_boards_detailed."trip.is_canceled" = true
145
+ and
146
+ (
147
+ (mode = 1 and departure_boards_detailed."computed.arrival_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
148
+ or (mode != 1 and departure_boards_detailed."computed.departure_datetime_real" between dateCanceledDepartureBetweenStart and dateCanceledDepartureBetweenEnd)
149
+ )
150
+ )
151
+ ) and
152
+ (
153
+ (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
154
+ 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
155
+ or (mode=3 and (departure_boards_detailed."ropidgtfs_precomputed_departures.pickup_type" != '1')) -- mode mixed
156
+ );
157
+ $function$
158
+ ;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/pid",
3
- "version": "5.8.3-dev.2434465933",
3
+ "version": "5.8.3-dev.2434601844",
4
4
  "description": "Golemio PID Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",