@golemio/pid 2.9.3 → 2.9.4-dev.1032878036

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.
Files changed (56) hide show
  1. package/db/example/02_pid_line_example_115.sql +5 -5
  2. package/db/example/03_ropidgtfs_dump.sql +5 -5
  3. package/db/example/05_vehicle_positions_dump.sql +22 -22
  4. package/db/example/08_update_delay_dump.sql +100 -100
  5. package/db/example/10_cancelledTrip_example.sql +2 -2
  6. package/db/example/12_metro_line_A_gtfs_trips.sql +9 -9
  7. package/db/example/13_http-propagate-delay.sql +15 -15
  8. package/db/example/14_nightDelays.sql +2 -2
  9. package/db/migrations/postgresql/20231009141316-positions-tracked.js +53 -0
  10. package/db/migrations/postgresql/sqls/20231009141316-positions-tracked-down.sql +188 -0
  11. package/db/migrations/postgresql/sqls/20231009141316-positions-tracked-up.sql +188 -0
  12. package/dist/const.d.ts +0 -4
  13. package/dist/const.js +1 -6
  14. package/dist/const.js.map +1 -1
  15. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js +3 -3
  16. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js.map +1 -1
  17. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js +14 -8
  18. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js.map +1 -1
  19. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.d.ts +1 -1
  20. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.js +4 -5
  21. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.js.map +1 -1
  22. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.d.ts +0 -4
  23. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js +38 -46
  24. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js.map +1 -1
  25. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.d.ts +2 -3
  26. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js +3 -4
  27. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/VPUtils.js.map +1 -1
  28. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.js +2 -2
  29. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/CommonDelayAtStop.js.map +1 -1
  30. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js +2 -2
  31. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js.map +1 -1
  32. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.js +33 -22
  33. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/RegionalBusPositionsManager.js.map +1 -1
  34. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/strategy/BusDelayAtStop.js +2 -2
  35. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/regional-bus/compute-positions/strategy/BusDelayAtStop.js.map +1 -1
  36. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/TransformationInterfaces.d.ts +11 -1
  37. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/VPInterfaces.d.ts +1 -2
  38. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js +2 -2
  39. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateDelayTask.js.map +1 -1
  40. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateGtfsTripIdTask.js +2 -2
  41. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateGtfsTripIdTask.js.map +1 -1
  42. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PositionsTransformation.d.ts +1 -12
  43. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PositionsTransformation.js +6 -1
  44. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PositionsTransformation.js.map +1 -1
  45. package/dist/output-gateway/vehicle-positions/data-access/helpers/PositionOutputMapper.js +1 -2
  46. package/dist/output-gateway/vehicle-positions/data-access/helpers/PositionOutputMapper.js.map +1 -1
  47. package/dist/schema-definitions/vehicle-positions/models/PositionDto.d.ts +2 -2
  48. package/dist/schema-definitions/vehicle-positions/models/PositionDto.js +2 -2
  49. package/dist/schema-definitions/vehicle-positions/models/PositionDto.js.map +1 -1
  50. package/dist/schema-definitions/vehicle-positions/models/interfaces/IPositionDto.d.ts +2 -2
  51. package/dist/schema-definitions/vehicle-positions/models/interfaces/IVPTripsPositionAttributes.d.ts +1 -1
  52. package/dist/schema-definitions/vehicle-positions/models/views/TripWithLastPositionModel.d.ts +2 -2
  53. package/dist/schema-definitions/vehicle-positions/models/views/TripWithLastPositionModel.js +1 -1
  54. package/dist/schema-definitions/vehicle-positions/models/views/TripWithLastPositionModel.js.map +1 -1
  55. package/dist/schema-definitions/vehicle-positions/models/views/interfaces/ITripWithLastPositionDto.d.ts +2 -2
  56. package/package.json +1 -1
@@ -153,12 +153,12 @@ VALUES
153
153
  WITH init_values AS (SELECT NOW()::DATE AS now_date)
154
154
  INSERT INTO "vehiclepositions_trips" ("cis_line_id","cis_trip_number","run_number","internal_run_number","cis_line_short_name","created_at","gtfs_route_id","gtfs_route_short_name","gtfs_trip_id","id","updated_at","start_cis_stop_id","start_cis_stop_platform_code","start_time","start_timestamp","vehicle_type_id","wheelchair_accessible","create_batch_id","created_by","update_batch_id","updated_by","agency_name_scheduled","origin_route_name","internal_route_name","agency_name_real","vehicle_registration_number","gtfs_trip_headsign","start_asw_stop_id","gtfs_route_type","gtfs_block_id","last_position_id","is_canceled","end_timestamp","gtfs_trip_short_name","last_position_context")
155
155
  VALUES
156
- --(E'100212',1044,2,E'212',E'2022-12-23 11:54:16.664+01',E'L212',E'212',E'212_365_221211',E'2022-12-23T11:24:00Z_100212_212_1044',E'2022-12-23 13:01:17.635+01',58701,E'A',E'12:24:00',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '12:24:00')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212',E'STENBUS',1712,E'Nádraží Klánovice-sever',NULL,3,NULL,1564165759,FALSE,1671795000000,NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671795011000,"firstPositionDelay":11},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564165759","lastPositionOriginTimestamp":1671796852000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":196,"delay":36,"id":"1563938739","lat":50.08797,"lng":14.66552,"origin_time":"12:30:36","origin_timestamp":1671795036000,"shape_dist_traveled":2.408,"tracking":2,"is_canceled":false,"state_position":"at_stop","state_process":"processed","tcp_event":null,"this_stop_sequence":7,"last_stop_sequence":7,"last_stop_id":"U454Z4P","last_stop_arrival_time":1671795000000,"last_stop_departure_time":1671795000000,"next_stop_id":"U454Z4P","next_stop_name":"Nádraží Klánovice-sever","last_stop_name":"Nádraží Klánovice-sever","next_stop_sequence":7,"next_stop_arrival_time":1671795000000,"next_stop_departure_time":1671795000000,"this_stop_id":"U454Z4P","this_stop_name":"Nádraží Klánovice-sever","valid_to":1671795336000},"geometry":{"type":"Point","coordinates":[14.66552,50.08797]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T11:24:00Z_100212_212_1044"}'),
157
- --(E'100212',1043,2,E'212',E'2022-12-23 12:01:12.172+01',E'L212',E'212',E'212_366_221211',E'2022-12-23T11:31:00Z_100212_212_1043',E'2022-12-23 13:07:38.147+01',27935,E'C',E'12:31:00',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '12:31:00')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564213175,FALSE,1671795360000,NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671795477000,"firstPositionDelay":117},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564213175","lastPositionOriginTimestamp":1671797202000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":38,"delay":117,"id":"1563990184","lat":50.1036,"lng":14.6586,"origin_time":"12:37:57","origin_timestamp":1671795477000,"shape_dist_traveled":2.491,"tracking":2,"is_canceled":false,"state_position":"at_stop","state_process":"processed","tcp_event":null,"this_stop_sequence":6,"last_stop_sequence":6,"last_stop_id":"U4107Z1P","last_stop_arrival_time":1671795360000,"last_stop_departure_time":1671795360000,"next_stop_id":"U4107Z1P","next_stop_name":"Nepasické náměstí","last_stop_name":"Nepasické náměstí","next_stop_sequence":6,"next_stop_arrival_time":1671795360000,"next_stop_departure_time":1671795360000,"this_stop_id":"U4107Z1P","this_stop_name":"Nepasické náměstí","valid_to":1671795777000},"geometry":{"type":"Point","coordinates":[14.6586,50.1036]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":false,"tripId":"2022-12-23T11:31:00Z_100212_212_1043"}'),
158
- --(E'100212',1046,2,E'212',E'2022-12-23 12:24:16.404+01',E'L212',E'212',E'212_367_221211',E'2022-12-23T11:54:00Z_100212_212_1046',E'2022-12-23 13:30:11.782+01',58701,E'A',E'12:54:00',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '12:54:00')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212',E'STENBUS',1712,E'Nádraží Klánovice-sever',NULL,3,NULL,1564383076,FALSE,1671796800000,NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671796785000,"firstPositionDelay":-15},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564383076","lastPositionOriginTimestamp":1671798580000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":196,"delay":-15,"id":"1564155786","lat":50.08828,"lng":14.66574,"origin_time":"12:59:45","origin_timestamp":1671796785000,"shape_dist_traveled":2.408,"tracking":2,"is_canceled":false,"state_position":"at_stop","state_process":"processed","tcp_event":null,"this_stop_sequence":7,"last_stop_sequence":7,"last_stop_id":"U454Z4P","last_stop_arrival_time":1671796800000,"last_stop_departure_time":1671796800000,"next_stop_id":"U454Z4P","next_stop_name":"Nádraží Klánovice-sever","last_stop_name":"Nádraží Klánovice-sever","next_stop_sequence":7,"next_stop_arrival_time":1671796800000,"next_stop_departure_time":1671796800000,"this_stop_id":"U454Z4P","this_stop_name":"Nádraží Klánovice-sever","valid_to":1671797085000},"geometry":{"type":"Point","coordinates":[14.66574,50.08828]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T11:54:00Z_100212_212_1046"}'),
159
- --(E'100212',1045,2,E'212',E'2022-12-23 12:31:20.392+01',E'L212',E'212',E'212_368_221211',E'2022-12-23T12:01:00Z_100212_212_1045',E'2022-12-23 13:36:04.603+01',27935,E'C',E'13:01:00',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '13:01:00')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564424455,FALSE,1671797160000,NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671797087000,"firstPositionDelay":-13},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564424455","lastPositionOriginTimestamp":1671798943000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":359,"delay":-7,"id":"1564202112","lat":50.10244,"lng":14.65803,"origin_time":"13:05:33","origin_timestamp":1671797133000,"shape_dist_traveled":2.289,"tracking":2,"is_canceled":false,"state_position":"on_track","state_process":"processed","tcp_event":null,"last_stop_sequence":5,"last_stop_id":"U4137Z1P","last_stop_arrival_time":1671797100000,"last_stop_departure_time":1671797100000,"next_stop_id":"U4107Z1P","next_stop_name":"Nepasické náměstí","last_stop_name":"Všestarská","next_stop_sequence":6,"next_stop_arrival_time":1671797160000,"next_stop_departure_time":1671797160000,"valid_to":1671797433000},"geometry":{"type":"Point","coordinates":[14.65803,50.10244]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T12:01:00Z_100212_212_1045"}');
160
- (E'100212',1044,2,2,E'212',E'2022-12-23 11:54:16.664+01',E'L212',E'212',E'212_365_221211',E'2022-12-23T11:24:00Z_100212_212_1044',E'2022-12-23 13:01:17.635+01',58701,E'A',E'12:24:00',((SELECT now_date FROM init_values) + INTERVAL '12:24:00') at time zone 'Europe/Prague',3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212','212',E'STENBUS',1712,E'Nádraží Klánovice-sever',NULL,3,NULL,1564165759,FALSE,((SELECT now_date FROM init_values) + INTERVAL '12:30:00' ) at time zone 'Europe/Prague',NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671795011000,"firstPositionDelay":11},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564165759","lastPositionOriginTimestamp":1671796852000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":196,"delay":36,"id":"1563938739","lat":50.08797,"lng":14.66552,"origin_time":"12:30:36","origin_timestamp":1671795036000,"shape_dist_traveled":2.408,"tracking":0,"is_canceled":false,"state_position":"after_track","state_process":"processed","tcp_event":null,"this_stop_sequence":7,"last_stop_sequence":7,"last_stop_id":"U454Z4P","last_stop_arrival_time":1671795000000,"last_stop_departure_time":1671795000000,"next_stop_id":"U454Z4P","next_stop_name":"Nádraží Klánovice-sever","last_stop_name":"Nádraží Klánovice-sever","next_stop_sequence":7,"next_stop_arrival_time":1671795000000,"next_stop_departure_time":1671795000000,"this_stop_id":"U454Z4P","this_stop_name":"Nádraží Klánovice-sever","valid_to":1671795336000},"geometry":{"type":"Point","coordinates":[14.66552,50.08797]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T11:24:00Z_100212_212_1044"}'),
161
- (E'100212',1043,2,2,E'212',E'2022-12-23 12:01:12.172+01',E'L212',E'212',E'212_366_221211',E'2022-12-23T11:31:00Z_100212_212_1043',E'2022-12-23 13:07:38.147+01',27935,E'C',E'12:31:00',((SELECT now_date FROM init_values) + INTERVAL '12:31:00') at time zone 'Europe/Prague',3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212','212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564213175,FALSE,((SELECT now_date FROM init_values) + INTERVAL '12:36:00') at time zone 'Europe/Prague',NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671795477000,"firstPositionDelay":117},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564213175","lastPositionOriginTimestamp":1671797202000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":38,"delay":117,"id":"1563990184","lat":50.1036,"lng":14.6586,"origin_time":"12:37:57","origin_timestamp":1671795477000,"shape_dist_traveled":2.491,"tracking":0,"is_canceled":false,"state_position":"after_track","state_process":"processed","tcp_event":null,"this_stop_sequence":6,"last_stop_sequence":6,"last_stop_id":"U4107Z1P","last_stop_arrival_time":1671795360000,"last_stop_departure_time":1671795360000,"next_stop_id":"U4107Z1P","next_stop_name":"Nepasické náměstí","last_stop_name":"Nepasické náměstí","next_stop_sequence":6,"next_stop_arrival_time":1671795360000,"next_stop_departure_time":1671795360000,"this_stop_id":"U4107Z1P","this_stop_name":"Nepasické náměstí","valid_to":1671795777000},"geometry":{"type":"Point","coordinates":[14.6586,50.1036]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":false,"tripId":"2022-12-23T11:31:00Z_100212_212_1043"}'),
156
+ --(E'100212',1044,2,E'212',E'2022-12-23 11:54:16.664+01',E'L212',E'212',E'212_365_221211',E'2022-12-23T11:24:00Z_100212_212_1044',E'2022-12-23 13:01:17.635+01',58701,E'A',E'12:24:00',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '12:24:00')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212',E'STENBUS',1712,E'Nádraží Klánovice-sever',NULL,3,NULL,1564165759,FALSE,1671795000000,NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671795011000,"firstPositionDelay":11},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564165759","lastPositionOriginTimestamp":1671796852000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":196,"delay":36,"id":"1563938739","lat":50.08797,"lng":14.66552,"origin_time":"12:30:36","origin_timestamp":1671795036000,"shape_dist_traveled":2.408,"is_tracked":true,"is_canceled":false,"state_position":"at_stop","state_process":"processed","tcp_event":null,"this_stop_sequence":7,"last_stop_sequence":7,"last_stop_id":"U454Z4P","last_stop_arrival_time":1671795000000,"last_stop_departure_time":1671795000000,"next_stop_id":"U454Z4P","next_stop_name":"Nádraží Klánovice-sever","last_stop_name":"Nádraží Klánovice-sever","next_stop_sequence":7,"next_stop_arrival_time":1671795000000,"next_stop_departure_time":1671795000000,"this_stop_id":"U454Z4P","this_stop_name":"Nádraží Klánovice-sever","valid_to":1671795336000},"geometry":{"type":"Point","coordinates":[14.66552,50.08797]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T11:24:00Z_100212_212_1044"}'),
157
+ --(E'100212',1043,2,E'212',E'2022-12-23 12:01:12.172+01',E'L212',E'212',E'212_366_221211',E'2022-12-23T11:31:00Z_100212_212_1043',E'2022-12-23 13:07:38.147+01',27935,E'C',E'12:31:00',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '12:31:00')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564213175,FALSE,1671795360000,NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671795477000,"firstPositionDelay":117},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564213175","lastPositionOriginTimestamp":1671797202000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":38,"delay":117,"id":"1563990184","lat":50.1036,"lng":14.6586,"origin_time":"12:37:57","origin_timestamp":1671795477000,"shape_dist_traveled":2.491,"is_tracked":true,"is_canceled":false,"state_position":"at_stop","state_process":"processed","tcp_event":null,"this_stop_sequence":6,"last_stop_sequence":6,"last_stop_id":"U4107Z1P","last_stop_arrival_time":1671795360000,"last_stop_departure_time":1671795360000,"next_stop_id":"U4107Z1P","next_stop_name":"Nepasické náměstí","last_stop_name":"Nepasické náměstí","next_stop_sequence":6,"next_stop_arrival_time":1671795360000,"next_stop_departure_time":1671795360000,"this_stop_id":"U4107Z1P","this_stop_name":"Nepasické náměstí","valid_to":1671795777000},"geometry":{"type":"Point","coordinates":[14.6586,50.1036]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":false,"tripId":"2022-12-23T11:31:00Z_100212_212_1043"}'),
158
+ --(E'100212',1046,2,E'212',E'2022-12-23 12:24:16.404+01',E'L212',E'212',E'212_367_221211',E'2022-12-23T11:54:00Z_100212_212_1046',E'2022-12-23 13:30:11.782+01',58701,E'A',E'12:54:00',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '12:54:00')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212',E'STENBUS',1712,E'Nádraží Klánovice-sever',NULL,3,NULL,1564383076,FALSE,1671796800000,NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671796785000,"firstPositionDelay":-15},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564383076","lastPositionOriginTimestamp":1671798580000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":196,"delay":-15,"id":"1564155786","lat":50.08828,"lng":14.66574,"origin_time":"12:59:45","origin_timestamp":1671796785000,"shape_dist_traveled":2.408,"is_tracked":true,"is_canceled":false,"state_position":"at_stop","state_process":"processed","tcp_event":null,"this_stop_sequence":7,"last_stop_sequence":7,"last_stop_id":"U454Z4P","last_stop_arrival_time":1671796800000,"last_stop_departure_time":1671796800000,"next_stop_id":"U454Z4P","next_stop_name":"Nádraží Klánovice-sever","last_stop_name":"Nádraží Klánovice-sever","next_stop_sequence":7,"next_stop_arrival_time":1671796800000,"next_stop_departure_time":1671796800000,"this_stop_id":"U454Z4P","this_stop_name":"Nádraží Klánovice-sever","valid_to":1671797085000},"geometry":{"type":"Point","coordinates":[14.66574,50.08828]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T11:54:00Z_100212_212_1046"}'),
159
+ --(E'100212',1045,2,E'212',E'2022-12-23 12:31:20.392+01',E'L212',E'212',E'212_368_221211',E'2022-12-23T12:01:00Z_100212_212_1045',E'2022-12-23 13:36:04.603+01',27935,E'C',E'13:01:00',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '13:01:00')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564424455,FALSE,1671797160000,NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671797087000,"firstPositionDelay":-13},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564424455","lastPositionOriginTimestamp":1671798943000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":359,"delay":-7,"id":"1564202112","lat":50.10244,"lng":14.65803,"origin_time":"13:05:33","origin_timestamp":1671797133000,"shape_dist_traveled":2.289,"is_tracked":true,"is_canceled":false,"state_position":"on_track","state_process":"processed","tcp_event":null,"last_stop_sequence":5,"last_stop_id":"U4137Z1P","last_stop_arrival_time":1671797100000,"last_stop_departure_time":1671797100000,"next_stop_id":"U4107Z1P","next_stop_name":"Nepasické náměstí","last_stop_name":"Všestarská","next_stop_sequence":6,"next_stop_arrival_time":1671797160000,"next_stop_departure_time":1671797160000,"valid_to":1671797433000},"geometry":{"type":"Point","coordinates":[14.65803,50.10244]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T12:01:00Z_100212_212_1045"}');
160
+ (E'100212',1044,2,2,E'212',E'2022-12-23 11:54:16.664+01',E'L212',E'212',E'212_365_221211',E'2022-12-23T11:24:00Z_100212_212_1044',E'2022-12-23 13:01:17.635+01',58701,E'A',E'12:24:00',((SELECT now_date FROM init_values) + INTERVAL '12:24:00') at time zone 'Europe/Prague',3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212','212',E'STENBUS',1712,E'Nádraží Klánovice-sever',NULL,3,NULL,1564165759,FALSE,((SELECT now_date FROM init_values) + INTERVAL '12:30:00' ) at time zone 'Europe/Prague',NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671795011000,"firstPositionDelay":11},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564165759","lastPositionOriginTimestamp":1671796852000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":196,"delay":36,"id":"1563938739","lat":50.08797,"lng":14.66552,"origin_time":"12:30:36","origin_timestamp":1671795036000,"shape_dist_traveled":2.408,"is_tracked":false,"is_canceled":false,"state_position":"after_track","state_process":"processed","tcp_event":null,"this_stop_sequence":7,"last_stop_sequence":7,"last_stop_id":"U454Z4P","last_stop_arrival_time":1671795000000,"last_stop_departure_time":1671795000000,"next_stop_id":"U454Z4P","next_stop_name":"Nádraží Klánovice-sever","last_stop_name":"Nádraží Klánovice-sever","next_stop_sequence":7,"next_stop_arrival_time":1671795000000,"next_stop_departure_time":1671795000000,"this_stop_id":"U454Z4P","this_stop_name":"Nádraží Klánovice-sever","valid_to":1671795336000},"geometry":{"type":"Point","coordinates":[14.66552,50.08797]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T11:24:00Z_100212_212_1044"}'),
161
+ (E'100212',1043,2,2,E'212',E'2022-12-23 12:01:12.172+01',E'L212',E'212',E'212_366_221211',E'2022-12-23T11:31:00Z_100212_212_1043',E'2022-12-23 13:07:38.147+01',27935,E'C',E'12:31:00',((SELECT now_date FROM init_values) + INTERVAL '12:31:00') at time zone 'Europe/Prague',3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212','212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564213175,FALSE,((SELECT now_date FROM init_values) + INTERVAL '12:36:00') at time zone 'Europe/Prague',NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671795477000,"firstPositionDelay":117},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564213175","lastPositionOriginTimestamp":1671797202000,"lastPositionTracking":{"type":"Feature","properties":{"bearing":38,"delay":117,"id":"1563990184","lat":50.1036,"lng":14.6586,"origin_time":"12:37:57","origin_timestamp":1671795477000,"shape_dist_traveled":2.491,"is_tracked":false,"is_canceled":false,"state_position":"after_track","state_process":"processed","tcp_event":null,"this_stop_sequence":6,"last_stop_sequence":6,"last_stop_id":"U4107Z1P","last_stop_arrival_time":1671795360000,"last_stop_departure_time":1671795360000,"next_stop_id":"U4107Z1P","next_stop_name":"Nepasické náměstí","last_stop_name":"Nepasické náměstí","next_stop_sequence":6,"next_stop_arrival_time":1671795360000,"next_stop_departure_time":1671795360000,"this_stop_id":"U4107Z1P","this_stop_name":"Nepasické náměstí","valid_to":1671795777000},"geometry":{"type":"Point","coordinates":[14.6586,50.1036]}},"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":false,"tripId":"2022-12-23T11:31:00Z_100212_212_1043"}'),
162
162
  (E'100212',1046,2,2,E'212',E'2022-12-23 12:24:16.404+01',E'L212',E'212',E'212_367_221211',E'2022-12-23T11:54:00Z_100212_212_1046',E'2022-12-23 13:30:11.782+01',58701,E'A',E'12:54:00',((SELECT now_date FROM init_values) + INTERVAL '12:54:00') at time zone 'Europe/Prague',3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212','212',E'STENBUS',1712,E'Nádraží Klánovice-sever',NULL,3,NULL,1564383076,FALSE,((SELECT now_date FROM init_values) + INTERVAL '13:00:00') at time zone 'Europe/Prague',NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671796785000,"firstPositionDelay":-15},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564383076","lastPositionOriginTimestamp":1671798580000,"lastPositionTracking":null,"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T11:54:00Z_100212_212_1046"}'),
163
163
  (E'100212',1045,2,2,E'212',E'2022-12-23 12:31:20.392+01',E'L212',E'212',E'212_368_221211',E'2022-12-23T12:01:00Z_100212_212_1045',E'2022-12-23 13:36:04.603+01',27935,E'C',E'13:01:00',((SELECT now_date FROM init_values) + INTERVAL '13:01:00') at time zone 'Europe/Prague',3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212','212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564424455,FALSE,((SELECT now_date FROM init_values) + INTERVAL '13:06:00') at time zone 'Europe/Prague',NULL,E'{"atStopStreak":{"stop_sequence":null,"firstPositionTimestamp":1671797087000,"firstPositionDelay":-13},"lastPositionLastStop":{"id":null,"sequence":null,"arrival_time":null,"departure_time":null},"lastPositionId":"1564424455","lastPositionOriginTimestamp":1671798943000,"lastPositionTracking":null,"lastPositionCanceled":false,"lastPositionBeforeTrackDelayed":null,"isLastPositionAfterTrack":true,"tripId":"2022-12-23T12:01:00Z_100212_212_1045"}');
164
164
 
@@ -170,7 +170,7 @@ VALUES
170
170
  -- positions
171
171
 
172
172
  WITH init_values AS (SELECT NOW()::DATE AS now_date)
173
- INSERT INTO "vehiclepositions_positions"("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","id","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")
173
+ INSERT INTO "vehiclepositions_positions"("created_at","delay","delay_stop_arrival","delay_stop_departure","next_stop_id","shape_dist_traveled","is_canceled","lat","lng","origin_time","origin_timestamp","is_tracked","trips_id","create_batch_id","created_by","update_batch_id","updated_at","updated_by","id","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")
174
174
  VALUES
175
175
  --(E'2022-12-23 12:34:19.655+01',NULL,9,NULL,NULL,2.408,FALSE,50.09074,14.6669,E'12:33:47',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:33:47') at time zone 'Europe/Prague')*1000,0,E'2022-12-23T11:24:00Z_100212_212_1044',NULL,NULL,NULL,E'2022-12-23 12:34:20.694+01',NULL,1563962101,16,27935,7,E'U454Z4P',7,NULL,26,1671795000000,1671795000000,NULL,NULL,NULL,E'processed',E'after_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795527000),
176
176
  --(E'2022-12-23 12:34:36.599+01',NULL,9,NULL,NULL,2.408,FALSE,50.09074,14.6669,E'12:33:47',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:33:47') at time zone 'Europe/Prague')*1000,0,E'2022-12-23T11:24:00Z_100212_212_1044',NULL,NULL,NULL,E'2022-12-23 12:34:37.46+01',NULL,1563964089,16,27935,7,E'U454Z4P',7,NULL,26,1671795000000,1671795000000,NULL,NULL,NULL,E'processed',E'duplicate',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795527000),
@@ -208,11 +208,11 @@ VALUES
208
208
  --(E'2022-12-23 12:36:24.164+01',NULL,NULL,NULL,E'U4107Z1P',0,FALSE,50.09938,14.66568,E'12:36:02',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:36:02') at time zone 'Europe/Prague')*1000,0,E'2022-12-23T11:54:00Z_100212_212_1046',NULL,NULL,NULL,E'2022-12-23 12:36:25.072+01',NULL,1563977160,297,NULL,NULL,NULL,NULL,1,29,NULL,NULL,1671796440000,1671796440000,NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795662000),
209
209
  --(E'2022-12-23 12:36:41.462+01',NULL,NULL,NULL,E'U454Z3P',0,FALSE,50.09938,14.66568,E'12:36:02',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:36:02') at time zone 'Europe/Prague')*1000,0,E'2022-12-23T12:01:00Z_100212_212_1045',NULL,NULL,NULL,E'2022-12-23 12:36:42.641+01',NULL,1563979131,297,NULL,NULL,NULL,NULL,1,29,NULL,NULL,1671796860000,1671796860000,NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795662000),
210
210
  --(E'2022-12-23 12:36:24.164+01',NULL,NULL,NULL,E'U454Z3P',0,FALSE,50.09938,14.66568,E'12:36:02',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:36:02') at time zone 'Europe/Prague')*1000,0,E'2022-12-23T12:01:00Z_100212_212_1045',NULL,NULL,NULL,E'2022-12-23 12:36:25.076+01',NULL,1563977159,297,NULL,NULL,NULL,NULL,1,29,NULL,NULL,1671796860000,1671796860000,NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795662000),
211
- (E'2022-12-23 12:36:58.062+01',NULL,9,NULL,NULL,2.408,FALSE,50.10024,14.66322,E'12:36:27',((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague',0,E'2022-12-23T11:24:00Z_100212_212_1044',NULL,NULL,NULL,E'2022-12-23 12:36:59.26+01',NULL,1563981366,297,27935,7,E'U454Z4P',7,NULL,28,'2022-12-23T11:30:00.000Z','2022-12-23T11:30:00.000Z',NULL,NULL,NULL,E'processed',E'after_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
212
- (E'2022-12-23 12:36:58.062+01',87,NULL,87,E'U4107Z1P',1.887,FALSE,50.10024,14.66322,E'12:36:27',((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague',2,E'2022-12-23T11:31:00Z_100212_212_1043',NULL,NULL,NULL,E'2022-12-23 12:36:59.261+01',NULL,1563981365,270,59545,5,E'U4137Z1P',5,6,28,'2022-12-23T11:35:00.000Z','2022-12-23T11:35:00.000Z','2022-12-23T11:36:00.000Z','2022-12-23T11:36:00.000Z',NULL,E'processed',E'at_stop',E'U4137Z1P',5,NULL,NULL,E'Všestarská',NULL,NULL,'2022-12-23T11:41:27.000Z'),
213
- (E'2022-12-23 12:36:58.062+01',NULL,NULL,NULL,E'U4107Z1P',0,FALSE,50.10024,14.66322,E'12:36:27',((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague',0,E'2022-12-23T11:54:00Z_100212_212_1046',NULL,NULL,NULL,E'2022-12-23 12:36:59.264+01',NULL,1563981368,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T11:54:00.000Z','2022-12-23T11:54:00.000Z',NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
214
- (E'2022-12-23 12:36:58.062+01',NULL,NULL,NULL,E'U454Z3P',0,FALSE,50.10024,14.66322,E'12:36:27',((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague',0,E'2022-12-23T12:01:00Z_100212_212_1045',NULL,NULL,NULL,E'2022-12-23 12:36:59.262+01',NULL,1563981367,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T12:01:00.000Z','2022-12-23T12:01:00.000Z',NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
215
- (E'2022-12-23 12:36:58.063+01',NULL,9,NULL,NULL,2.408,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',0,E'2022-12-23T11:24:00Z_100212_212_1044',NULL,NULL,NULL,E'2022-12-23 12:36:59.26+01',NULL,2563981366,297,27935,7,E'U454Z4P',7,NULL,28,'2022-12-23T11:30:00.000Z','2022-12-23T11:30:00.000Z',NULL,NULL,NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
216
- (E'2022-12-23 12:36:58.063+01',87,NULL,87,E'U4107Z1P',1.887,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',2,E'2022-12-23T11:31:00Z_100212_212_1043',NULL,NULL,NULL,E'2022-12-23 12:36:59.261+01',NULL,2563981365,270,59545,5,E'U4137Z1P',5,6,28,'2022-12-23T11:35:00.000Z','2022-12-23T11:35:00.000Z','2022-12-23T11:36:00.000Z','2022-12-23T11:36:00.000Z',NULL,E'input',E'unknown',E'U4137Z1P',5,NULL,NULL,E'Všestarská',NULL,NULL,'2022-12-23T11:41:27.000Z'),
217
- (E'2022-12-23 12:36:58.063+01',NULL,NULL,NULL,E'U4107Z1P',0,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',0,E'2022-12-23T11:54:00Z_100212_212_1046',NULL,NULL,NULL,E'2022-12-23 12:36:59.264+01',NULL,2563981368,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T11:54:00.000Z','2022-12-23T11:54:00.000Z',NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
218
- (E'2022-12-23 12:36:58.063+01',NULL,NULL,NULL,E'U454Z3P',0,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',0,E'2022-12-23T12:01:00Z_100212_212_1045',NULL,NULL,NULL,E'2022-12-23 12:36:59.262+01',NULL,2563981367,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T12:01:00.000Z','2022-12-23T12:01:00.000Z',NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z');
211
+ (E'2022-12-23 12:36:58.062+01',NULL,9,NULL,NULL,2.408,FALSE,50.10024,14.66322,E'12:36:27',((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague',false,E'2022-12-23T11:24:00Z_100212_212_1044',NULL,NULL,NULL,E'2022-12-23 12:36:59.26+01',NULL,1563981366,297,27935,7,E'U454Z4P',7,NULL,28,'2022-12-23T11:30:00.000Z','2022-12-23T11:30:00.000Z',NULL,NULL,NULL,E'processed',E'after_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
212
+ (E'2022-12-23 12:36:58.062+01',87,NULL,87,E'U4107Z1P',1.887,FALSE,50.10024,14.66322,E'12:36:27',((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague',true,E'2022-12-23T11:31:00Z_100212_212_1043',NULL,NULL,NULL,E'2022-12-23 12:36:59.261+01',NULL,1563981365,270,59545,5,E'U4137Z1P',5,6,28,'2022-12-23T11:35:00.000Z','2022-12-23T11:35:00.000Z','2022-12-23T11:36:00.000Z','2022-12-23T11:36:00.000Z',NULL,E'processed',E'at_stop',E'U4137Z1P',5,NULL,NULL,E'Všestarská',NULL,NULL,'2022-12-23T11:41:27.000Z'),
213
+ (E'2022-12-23 12:36:58.062+01',NULL,NULL,NULL,E'U4107Z1P',0,FALSE,50.10024,14.66322,E'12:36:27',((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague',false,E'2022-12-23T11:54:00Z_100212_212_1046',NULL,NULL,NULL,E'2022-12-23 12:36:59.264+01',NULL,1563981368,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T11:54:00.000Z','2022-12-23T11:54:00.000Z',NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
214
+ (E'2022-12-23 12:36:58.062+01',NULL,NULL,NULL,E'U454Z3P',0,FALSE,50.10024,14.66322,E'12:36:27',((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague',false,E'2022-12-23T12:01:00Z_100212_212_1045',NULL,NULL,NULL,E'2022-12-23 12:36:59.262+01',NULL,1563981367,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T12:01:00.000Z','2022-12-23T12:01:00.000Z',NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
215
+ (E'2022-12-23 12:36:58.063+01',NULL,9,NULL,NULL,2.408,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',false,E'2022-12-23T11:24:00Z_100212_212_1044',NULL,NULL,NULL,E'2022-12-23 12:36:59.26+01',NULL,2563981366,297,27935,7,E'U454Z4P',7,NULL,28,'2022-12-23T11:30:00.000Z','2022-12-23T11:30:00.000Z',NULL,NULL,NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
216
+ (E'2022-12-23 12:36:58.063+01',87,NULL,87,E'U4107Z1P',1.887,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',true,E'2022-12-23T11:31:00Z_100212_212_1043',NULL,NULL,NULL,E'2022-12-23 12:36:59.261+01',NULL,2563981365,270,59545,5,E'U4137Z1P',5,6,28,'2022-12-23T11:35:00.000Z','2022-12-23T11:35:00.000Z','2022-12-23T11:36:00.000Z','2022-12-23T11:36:00.000Z',NULL,E'input',E'unknown',E'U4137Z1P',5,NULL,NULL,E'Všestarská',NULL,NULL,'2022-12-23T11:41:27.000Z'),
217
+ (E'2022-12-23 12:36:58.063+01',NULL,NULL,NULL,E'U4107Z1P',0,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',false,E'2022-12-23T11:54:00Z_100212_212_1046',NULL,NULL,NULL,E'2022-12-23 12:36:59.264+01',NULL,2563981368,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T11:54:00.000Z','2022-12-23T11:54:00.000Z',NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z'),
218
+ (E'2022-12-23 12:36:58.063+01',NULL,NULL,NULL,E'U454Z3P',0,FALSE,50.10024,14.66322,E'12:56:28',((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague',false,E'2022-12-23T12:01:00Z_100212_212_1045',NULL,NULL,NULL,E'2022-12-23 12:36:59.262+01',NULL,2563981367,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,'2022-12-23T12:01:00.000Z','2022-12-23T12:01:00.000Z',NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'2022-12-23T11:41:27.000Z');
@@ -7,8 +7,8 @@ INSERT INTO vehiclepositions_trips
7
7
  VALUES(NULL, NULL, 65, NULL, '2023-03-21 00:00:15.399', 'L94', '94', '94_979_230320', '2023-03-21T01:30:00+01:00_94_979_230320_8388', '2023-03-21 02:44:25.833', NULL, NULL, '01:30:00', '2023-03-21T00:30:00.000Z', 6, false, NULL, NULL, NULL, NULL, 'DP PRAHA', '94', 'DP PRAHA', 8388, 'Sídliště Barrandov', NULL, 0, NULL, 554214346, NULL, '2023-03-21T01:40:00.000Z', NULL, NULL, 65, '94',current_date - interval '1 day');
8
8
 
9
9
  INSERT INTO vehiclepositions_positions
10
- (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, id, 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, scheduled_timestamp)
11
- VALUES('2023-03-21 02:44:25.787', 10, NULL, NULL, 'U1019Z2P', 22.263, NULL, 50.03141, 14.36749, '02:44:20', '2023-03-21T01:44:20.000Z', 2, '2023-03-21T01:30:00+01:00_94_979_230320_8388', NULL, NULL, NULL, '2023-03-21 02:44:25.822', NULL, 554214346, 257, NULL, NULL, 'U1019Z2P', 8, 8, NULL, '2023-03-21T01:40:00.000Z', '2023-03-21T01:40:00.000Z', '2023-03-21T01:40:00.000Z', '2023-03-21T01:40:00.000Z', '10190002', 'processed', 'on_track', '10190002', NULL, 'V', NULL, 'Sídliště Barrandov', NULL, NULL, NULL, '2023-03-21T01:40:00.000Z');
10
+ (created_at, delay, delay_stop_arrival, delay_stop_departure, next_stop_id, shape_dist_traveled, is_canceled, lat, lng, origin_time, origin_timestamp, is_tracked, trips_id, create_batch_id, created_by, update_batch_id, updated_at, updated_by, id, 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, scheduled_timestamp)
11
+ VALUES('2023-03-21 02:44:25.787', 10, NULL, NULL, 'U1019Z2P', 22.263, NULL, 50.03141, 14.36749, '02:44:20', '2023-03-21T01:44:20.000Z', true, '2023-03-21T01:30:00+01:00_94_979_230320_8388', NULL, NULL, NULL, '2023-03-21 02:44:25.822', NULL, 554214346, 257, NULL, NULL, 'U1019Z2P', 8, 8, NULL, '2023-03-21T01:40:00.000Z', '2023-03-21T01:40:00.000Z', '2023-03-21T01:40:00.000Z', '2023-03-21T01:40:00.000Z', '10190002', 'processed', 'on_track', '10190002', NULL, 'V', NULL, 'Sídliště Barrandov', NULL, NULL, NULL, '2023-03-21T01:40:00.000Z');
12
12
 
13
13
  WITH init_values AS (SELECT NOW()::DATE AS now_date)
14
14
  INSERT INTO ropidgtfs_calendar_actual (end_date,friday,monday,saturday,service_id,start_date,sunday,thursday,tuesday,wednesday,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
@@ -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', '20231009141316-positions-tracked-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', '20231009141316-positions-tracked-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,188 @@
1
+ drop view v_vehiclepositions_alerts_last_position;
2
+ drop view v_vehiclepositions_all_trips_with_last_position;
3
+ drop view v_vehiclepositions_trip_position_vehicle_info;
4
+
5
+ alter table vehiclepositions_positions rename column is_tracked to tracking;
6
+ alter table vehiclepositions_positions alter column tracking type int using case tracking when true then 2 else 0 end;
7
+
8
+ -- recreate views
9
+ create view v_vehiclepositions_alerts_last_position as
10
+ SELECT t2.created_at,
11
+ t2.updated_at,
12
+ t2.delay,
13
+ t2.delay_stop_arrival,
14
+ t2.delay_stop_departure,
15
+ t2.next_stop_id,
16
+ t2.shape_dist_traveled,
17
+ t2.is_canceled,
18
+ t2.lat,
19
+ t2.lng,
20
+ t2.origin_time,
21
+ t2.origin_timestamp,
22
+ t2.tracking,
23
+ t2.trips_id,
24
+ t2.create_batch_id,
25
+ t2.created_by,
26
+ t2.update_batch_id,
27
+ t2.updated_by,
28
+ t2.id,
29
+ t2.bearing,
30
+ t2.cis_last_stop_id,
31
+ t2.cis_last_stop_sequence,
32
+ t2.last_stop_id,
33
+ t2.last_stop_sequence,
34
+ t2.next_stop_sequence,
35
+ t2.speed,
36
+ t2.last_stop_arrival_time,
37
+ t2.last_stop_departure_time,
38
+ t2.next_stop_arrival_time,
39
+ t2.next_stop_departure_time,
40
+ t2.asw_last_stop_id,
41
+ t1.gtfs_route_id,
42
+ t1.gtfs_route_short_name,
43
+ t1.gtfs_route_type,
44
+ t1.gtfs_trip_id,
45
+ t1.gtfs_trip_headsign,
46
+ t1.vehicle_type_id,
47
+ t1.wheelchair_accessible
48
+ FROM (vehiclepositions_trips t1
49
+ LEFT JOIN vehiclepositions_positions t2 ON ((t1.last_position_id = t2.id)))
50
+ WHERE ((t2.updated_at > (now() - '00:10:00'::interval)) AND ((t2.state_position)::text = ANY (ARRAY[('on_track'::character varying)::text, ('off_track'::character varying)::text, ('at_stop'::character varying)::text, ('before_track'::character varying)::text, ('after_track'::character varying)::text, ('canceled'::character varying)::text])))
51
+ ORDER BY t2.trips_id, t2.updated_at DESC;
52
+
53
+ comment on view v_vehiclepositions_alerts_last_position is '
54
+ Used only for alerting purposes.
55
+ ';
56
+
57
+ create view v_vehiclepositions_all_trips_with_last_position as
58
+ select
59
+ vt.id,
60
+ vt.agency_name_real,
61
+ vt.agency_name_scheduled,
62
+ vt.cis_line_id,
63
+ vt.cis_trip_number,
64
+ vt.gtfs_route_id,
65
+ vt.gtfs_route_short_name,
66
+ vt.gtfs_route_type,
67
+ vt.gtfs_trip_headsign,
68
+ vt.gtfs_trip_short_name,
69
+ vt.gtfs_trip_id,
70
+ vt.origin_route_name,
71
+ vt.run_number,
72
+ vt.vehicle_registration_number,
73
+ vt.vehicle_type_id,
74
+ vt.wheelchair_accessible,
75
+ vt.updated_at,
76
+ convert_timestamptz_to_iso_string(vt.start_timestamp) as start_timestamp_isostring,
77
+ vp.bearing,
78
+ vp.delay,
79
+ vp.delay_stop_arrival,
80
+ vp.delay_stop_departure,
81
+ vp.is_canceled,
82
+ vp.last_stop_id,
83
+ vp.last_stop_sequence,
84
+ vp.last_stop_headsign,
85
+ vp.lat,
86
+ vp.lng,
87
+ vp.next_stop_id,
88
+ vp.next_stop_sequence,
89
+ vp.shape_dist_traveled,
90
+ vp.speed,
91
+ vp.state_position,
92
+ vp.tracking,
93
+ convert_timestamptz_to_iso_string(vp.last_stop_arrival_time) as last_stop_arrival_time_isostring,
94
+ convert_timestamptz_to_iso_string(vp.last_stop_departure_time) as last_stop_departure_time_isostring,
95
+ convert_timestamptz_to_iso_string(vp.next_stop_arrival_time) as next_stop_arrival_time_isostring,
96
+ convert_timestamptz_to_iso_string(vp.next_stop_departure_time) as next_stop_departure_time_isostring,
97
+ convert_timestamptz_to_iso_string(vp.origin_timestamp) as origin_timestamp_isostring
98
+ from
99
+ vehiclepositions_trips vt
100
+ inner join vehiclepositions_positions vp on
101
+ vt.last_position_id = vp.id
102
+ and (vp.valid_to is null
103
+ or vp.valid_to >= now())
104
+ and vp.state_process = 'processed';
105
+
106
+ comment on view v_vehiclepositions_all_trips_with_last_position is '
107
+ View of all trips with last processed position. Used for serving data to the vehiclepositions output API.
108
+ ';
109
+
110
+ create view v_vehiclepositions_trip_position_vehicle_info as
111
+ select
112
+ "trip->last_position"."delay" as "delay_seconds",
113
+ "trip"."wheelchair_accessible" as "real_wheelchair_accessible",
114
+ "trip->last_position"."is_canceled" as "is_canceled",
115
+ "trip"."agency_name_real" as "trip.agency_name_real",
116
+ "trip"."agency_name_scheduled" as "trip.agency_name_scheduled",
117
+ "trip"."cis_line_id" as "trip.cis_line_id",
118
+ "trip"."cis_line_short_name" as "trip.cis_line_short_name",
119
+ "trip"."cis_trip_number" as "trip.cis_trip_number",
120
+ "trip"."gtfs_block_id" as "trip.gtfs_block_id",
121
+ "trip"."gtfs_route_id" as "trip.gtfs_route_id",
122
+ "trip"."gtfs_route_short_name" as "trip.gtfs_route_short_name",
123
+ "trip"."gtfs_route_type" as "trip.gtfs_route_type",
124
+ "trip"."gtfs_trip_headsign" as "trip.gtfs_trip_headsign",
125
+ "trip"."gtfs_trip_short_name" as "trip.gtfs_trip_short_name",
126
+ "trip"."gtfs_trip_id" as "trip.gtfs_trip_id",
127
+ "trip"."gtfs_date" as "trip.gtfs_date",
128
+ "trip"."id" as "trip.id",
129
+ "trip"."is_canceled" as "trip.is_canceled",
130
+ "trip"."last_position_id" as "trip.last_position_id",
131
+ "trip"."origin_route_name" as "trip.origin_route_name",
132
+ "trip"."run_number" as "trip.run_number",
133
+ "trip"."start_asw_stop_id" as "trip.start_asw_stop_id",
134
+ "trip"."start_cis_stop_id" as "trip.start_cis_stop_id",
135
+ "trip"."start_cis_stop_platform_code" as "trip.start_cis_stop_platform_code",
136
+ "trip"."start_time" as "trip.start_time",
137
+ "trip"."start_timestamp" as "trip.start_timestamp",
138
+ "trip"."end_timestamp" as "trip.end_timestamp",
139
+ "trip"."vehicle_registration_number" as "trip.vehicle_registration_number",
140
+ "trip"."vehicle_type_id" as "trip.vehicle_type_id",
141
+ "trip"."wheelchair_accessible" as "trip.wheelchair_accessible",
142
+ "trip"."internal_route_name" as "trip.internal_route_name",
143
+ "trip"."internal_run_number" as "trip.internal_run_number",
144
+ "trip->last_position"."asw_last_stop_id" as "trip.last_position.asw_last_stop_id",
145
+ "trip->last_position"."bearing" as "trip.last_position.bearing",
146
+ "trip->last_position"."cis_last_stop_id" as "trip.last_position.cis_last_stop_id",
147
+ "trip->last_position"."cis_last_stop_sequence" as "trip.last_position.cis_last_stop_sequence",
148
+ "trip->last_position"."delay" as "trip.last_position.delay",
149
+ "trip->last_position"."delay_stop_arrival" as "trip.last_position.delay_stop_arrival",
150
+ "trip->last_position"."delay_stop_departure" as "trip.last_position.delay_stop_departure",
151
+ "trip->last_position"."id" as "trip.last_position.id",
152
+ "trip->last_position"."is_canceled" as "trip.last_position.is_canceled",
153
+ "trip->last_position"."last_stop_arrival_time" as "trip.last_position.last_stop_arrival_time",
154
+ "trip->last_position"."last_stop_departure_time" as "trip.last_position.last_stop_departure_time",
155
+ "trip->last_position"."last_stop_id" as "trip.last_position.last_stop_id",
156
+ "trip->last_position"."last_stop_sequence" as "trip.last_position.last_stop_sequence",
157
+ "trip->last_position"."lat" as "trip.last_position.lat",
158
+ "trip->last_position"."lng" as "trip.last_position.lng",
159
+ "trip->last_position"."next_stop_arrival_time" as "trip.last_position.next_stop_arrival_time",
160
+ "trip->last_position"."next_stop_departure_time" as "trip.last_position.next_stop_departure_time",
161
+ "trip->last_position"."next_stop_id" as "trip.last_position.next_stop_id",
162
+ "trip->last_position"."next_stop_sequence" as "trip.last_position.next_stop_sequence",
163
+ "trip->last_position"."origin_time" as "trip.last_position.origin_time",
164
+ "trip->last_position"."origin_timestamp" as "trip.last_position.origin_timestamp",
165
+ "trip->last_position"."shape_dist_traveled" as "trip.last_position.shape_dist_traveled",
166
+ "trip->last_position"."speed" as "trip.last_position.speed",
167
+ "trip->last_position"."state_position" as "trip.last_position.state_position",
168
+ "trip->last_position"."state_process" as "trip.last_position.state_process",
169
+ "trip->last_position"."this_stop_id" as "trip.last_position.this_stop_id",
170
+ "trip->last_position"."this_stop_sequence" as "trip.last_position.this_stop_sequence",
171
+ "trip->last_position"."tracking" as "trip.last_position.tracking",
172
+ "trip->last_position"."trips_id" as "trip.last_position.trips_id",
173
+ "trip->last_position"."tcp_event" as "trip.last_position.tcp_event",
174
+ "trip->last_position"."last_stop_headsign" as "trip.last_position.last_stop_headsign",
175
+ "trip->last_position"."last_stop_name" as "trip.last_position.last_stop_name",
176
+ "trip->last_position"."valid_to" as "trip.last_position.valid_to",
177
+ "trip->last_position"."scheduled_timestamp" as "trip.last_position.scheduled_timestamp",
178
+ "trip->vehicle_descriptor"."id" as "trip.vehicle_descriptor.id",
179
+ "trip->vehicle_descriptor"."is_air_conditioned" as "trip.vehicle_descriptor.is_air_conditioned"
180
+ from
181
+ "vehiclepositions_trips" as "trip"
182
+ inner join "vehiclepositions_positions" as "trip->last_position" on
183
+ "trip"."last_position_id" = "trip->last_position"."id"
184
+ and ("trip->last_position"."valid_to" is null or "trip->last_position"."valid_to" >= current_timestamp)
185
+ and "trip->last_position"."state_position" in ('at_stop', 'before_track', 'before_track_delayed', 'canceled', 'off_track', 'on_track')
186
+ left outer join "vehiclepositions_vehicle_descriptors" as "trip->vehicle_descriptor" on
187
+ "trip"."vehicle_registration_number" = "trip->vehicle_descriptor"."registration_number"
188
+ and trip.gtfs_route_type = "trip->vehicle_descriptor".gtfs_route_type;
@@ -0,0 +1,188 @@
1
+ drop view v_vehiclepositions_alerts_last_position;
2
+ drop view v_vehiclepositions_all_trips_with_last_position;
3
+ drop view v_vehiclepositions_trip_position_vehicle_info;
4
+
5
+ alter table vehiclepositions_positions rename column tracking to is_tracked;
6
+ alter table vehiclepositions_positions alter column is_tracked type boolean using is_tracked::boolean;
7
+
8
+ -- recreate views
9
+ create view v_vehiclepositions_alerts_last_position as
10
+ SELECT t2.created_at,
11
+ t2.updated_at,
12
+ t2.delay,
13
+ t2.delay_stop_arrival,
14
+ t2.delay_stop_departure,
15
+ t2.next_stop_id,
16
+ t2.shape_dist_traveled,
17
+ t2.is_canceled,
18
+ t2.lat,
19
+ t2.lng,
20
+ t2.origin_time,
21
+ t2.origin_timestamp,
22
+ t2.is_tracked,
23
+ t2.trips_id,
24
+ t2.create_batch_id,
25
+ t2.created_by,
26
+ t2.update_batch_id,
27
+ t2.updated_by,
28
+ t2.id,
29
+ t2.bearing,
30
+ t2.cis_last_stop_id,
31
+ t2.cis_last_stop_sequence,
32
+ t2.last_stop_id,
33
+ t2.last_stop_sequence,
34
+ t2.next_stop_sequence,
35
+ t2.speed,
36
+ t2.last_stop_arrival_time,
37
+ t2.last_stop_departure_time,
38
+ t2.next_stop_arrival_time,
39
+ t2.next_stop_departure_time,
40
+ t2.asw_last_stop_id,
41
+ t1.gtfs_route_id,
42
+ t1.gtfs_route_short_name,
43
+ t1.gtfs_route_type,
44
+ t1.gtfs_trip_id,
45
+ t1.gtfs_trip_headsign,
46
+ t1.vehicle_type_id,
47
+ t1.wheelchair_accessible
48
+ FROM (vehiclepositions_trips t1
49
+ LEFT JOIN vehiclepositions_positions t2 ON ((t1.last_position_id = t2.id)))
50
+ WHERE ((t2.updated_at > (now() - '00:10:00'::interval)) AND ((t2.state_position)::text = ANY (ARRAY[('on_track'::character varying)::text, ('off_track'::character varying)::text, ('at_stop'::character varying)::text, ('before_track'::character varying)::text, ('after_track'::character varying)::text, ('canceled'::character varying)::text])))
51
+ ORDER BY t2.trips_id, t2.updated_at DESC;
52
+
53
+ comment on view v_vehiclepositions_alerts_last_position is '
54
+ Used only for alerting purposes.
55
+ ';
56
+
57
+ create view v_vehiclepositions_all_trips_with_last_position as
58
+ select
59
+ vt.id,
60
+ vt.agency_name_real,
61
+ vt.agency_name_scheduled,
62
+ vt.cis_line_id,
63
+ vt.cis_trip_number,
64
+ vt.gtfs_route_id,
65
+ vt.gtfs_route_short_name,
66
+ vt.gtfs_route_type,
67
+ vt.gtfs_trip_headsign,
68
+ vt.gtfs_trip_short_name,
69
+ vt.gtfs_trip_id,
70
+ vt.origin_route_name,
71
+ vt.run_number,
72
+ vt.vehicle_registration_number,
73
+ vt.vehicle_type_id,
74
+ vt.wheelchair_accessible,
75
+ vt.updated_at,
76
+ convert_timestamptz_to_iso_string(vt.start_timestamp) as start_timestamp_isostring,
77
+ vp.bearing,
78
+ vp.delay,
79
+ vp.delay_stop_arrival,
80
+ vp.delay_stop_departure,
81
+ vp.is_canceled,
82
+ vp.last_stop_id,
83
+ vp.last_stop_sequence,
84
+ vp.last_stop_headsign,
85
+ vp.lat,
86
+ vp.lng,
87
+ vp.next_stop_id,
88
+ vp.next_stop_sequence,
89
+ vp.shape_dist_traveled,
90
+ vp.speed,
91
+ vp.state_position,
92
+ vp.is_tracked,
93
+ convert_timestamptz_to_iso_string(vp.last_stop_arrival_time) as last_stop_arrival_time_isostring,
94
+ convert_timestamptz_to_iso_string(vp.last_stop_departure_time) as last_stop_departure_time_isostring,
95
+ convert_timestamptz_to_iso_string(vp.next_stop_arrival_time) as next_stop_arrival_time_isostring,
96
+ convert_timestamptz_to_iso_string(vp.next_stop_departure_time) as next_stop_departure_time_isostring,
97
+ convert_timestamptz_to_iso_string(vp.origin_timestamp) as origin_timestamp_isostring
98
+ from
99
+ vehiclepositions_trips vt
100
+ inner join vehiclepositions_positions vp on
101
+ vt.last_position_id = vp.id
102
+ and (vp.valid_to is null
103
+ or vp.valid_to >= now())
104
+ and vp.state_process = 'processed';
105
+
106
+ comment on view v_vehiclepositions_all_trips_with_last_position is '
107
+ View of all trips with last processed position. Used for serving data to the vehiclepositions output API.
108
+ ';
109
+
110
+ create view v_vehiclepositions_trip_position_vehicle_info as
111
+ select
112
+ "trip->last_position"."delay" as "delay_seconds",
113
+ "trip"."wheelchair_accessible" as "real_wheelchair_accessible",
114
+ "trip->last_position"."is_canceled" as "is_canceled",
115
+ "trip"."agency_name_real" as "trip.agency_name_real",
116
+ "trip"."agency_name_scheduled" as "trip.agency_name_scheduled",
117
+ "trip"."cis_line_id" as "trip.cis_line_id",
118
+ "trip"."cis_line_short_name" as "trip.cis_line_short_name",
119
+ "trip"."cis_trip_number" as "trip.cis_trip_number",
120
+ "trip"."gtfs_block_id" as "trip.gtfs_block_id",
121
+ "trip"."gtfs_route_id" as "trip.gtfs_route_id",
122
+ "trip"."gtfs_route_short_name" as "trip.gtfs_route_short_name",
123
+ "trip"."gtfs_route_type" as "trip.gtfs_route_type",
124
+ "trip"."gtfs_trip_headsign" as "trip.gtfs_trip_headsign",
125
+ "trip"."gtfs_trip_short_name" as "trip.gtfs_trip_short_name",
126
+ "trip"."gtfs_trip_id" as "trip.gtfs_trip_id",
127
+ "trip"."gtfs_date" as "trip.gtfs_date",
128
+ "trip"."id" as "trip.id",
129
+ "trip"."is_canceled" as "trip.is_canceled",
130
+ "trip"."last_position_id" as "trip.last_position_id",
131
+ "trip"."origin_route_name" as "trip.origin_route_name",
132
+ "trip"."run_number" as "trip.run_number",
133
+ "trip"."start_asw_stop_id" as "trip.start_asw_stop_id",
134
+ "trip"."start_cis_stop_id" as "trip.start_cis_stop_id",
135
+ "trip"."start_cis_stop_platform_code" as "trip.start_cis_stop_platform_code",
136
+ "trip"."start_time" as "trip.start_time",
137
+ "trip"."start_timestamp" as "trip.start_timestamp",
138
+ "trip"."end_timestamp" as "trip.end_timestamp",
139
+ "trip"."vehicle_registration_number" as "trip.vehicle_registration_number",
140
+ "trip"."vehicle_type_id" as "trip.vehicle_type_id",
141
+ "trip"."wheelchair_accessible" as "trip.wheelchair_accessible",
142
+ "trip"."internal_route_name" as "trip.internal_route_name",
143
+ "trip"."internal_run_number" as "trip.internal_run_number",
144
+ "trip->last_position"."asw_last_stop_id" as "trip.last_position.asw_last_stop_id",
145
+ "trip->last_position"."bearing" as "trip.last_position.bearing",
146
+ "trip->last_position"."cis_last_stop_id" as "trip.last_position.cis_last_stop_id",
147
+ "trip->last_position"."cis_last_stop_sequence" as "trip.last_position.cis_last_stop_sequence",
148
+ "trip->last_position"."delay" as "trip.last_position.delay",
149
+ "trip->last_position"."delay_stop_arrival" as "trip.last_position.delay_stop_arrival",
150
+ "trip->last_position"."delay_stop_departure" as "trip.last_position.delay_stop_departure",
151
+ "trip->last_position"."id" as "trip.last_position.id",
152
+ "trip->last_position"."is_canceled" as "trip.last_position.is_canceled",
153
+ "trip->last_position"."last_stop_arrival_time" as "trip.last_position.last_stop_arrival_time",
154
+ "trip->last_position"."last_stop_departure_time" as "trip.last_position.last_stop_departure_time",
155
+ "trip->last_position"."last_stop_id" as "trip.last_position.last_stop_id",
156
+ "trip->last_position"."last_stop_sequence" as "trip.last_position.last_stop_sequence",
157
+ "trip->last_position"."lat" as "trip.last_position.lat",
158
+ "trip->last_position"."lng" as "trip.last_position.lng",
159
+ "trip->last_position"."next_stop_arrival_time" as "trip.last_position.next_stop_arrival_time",
160
+ "trip->last_position"."next_stop_departure_time" as "trip.last_position.next_stop_departure_time",
161
+ "trip->last_position"."next_stop_id" as "trip.last_position.next_stop_id",
162
+ "trip->last_position"."next_stop_sequence" as "trip.last_position.next_stop_sequence",
163
+ "trip->last_position"."origin_time" as "trip.last_position.origin_time",
164
+ "trip->last_position"."origin_timestamp" as "trip.last_position.origin_timestamp",
165
+ "trip->last_position"."shape_dist_traveled" as "trip.last_position.shape_dist_traveled",
166
+ "trip->last_position"."speed" as "trip.last_position.speed",
167
+ "trip->last_position"."state_position" as "trip.last_position.state_position",
168
+ "trip->last_position"."state_process" as "trip.last_position.state_process",
169
+ "trip->last_position"."this_stop_id" as "trip.last_position.this_stop_id",
170
+ "trip->last_position"."this_stop_sequence" as "trip.last_position.this_stop_sequence",
171
+ "trip->last_position"."is_tracked" as "trip.last_position.is_tracked",
172
+ "trip->last_position"."trips_id" as "trip.last_position.trips_id",
173
+ "trip->last_position"."tcp_event" as "trip.last_position.tcp_event",
174
+ "trip->last_position"."last_stop_headsign" as "trip.last_position.last_stop_headsign",
175
+ "trip->last_position"."last_stop_name" as "trip.last_position.last_stop_name",
176
+ "trip->last_position"."valid_to" as "trip.last_position.valid_to",
177
+ "trip->last_position"."scheduled_timestamp" as "trip.last_position.scheduled_timestamp",
178
+ "trip->vehicle_descriptor"."id" as "trip.vehicle_descriptor.id",
179
+ "trip->vehicle_descriptor"."is_air_conditioned" as "trip.vehicle_descriptor.is_air_conditioned"
180
+ from
181
+ "vehiclepositions_trips" as "trip"
182
+ inner join "vehiclepositions_positions" as "trip->last_position" on
183
+ "trip"."last_position_id" = "trip->last_position"."id"
184
+ and ("trip->last_position"."valid_to" is null or "trip->last_position"."valid_to" >= current_timestamp)
185
+ and "trip->last_position"."state_position" in ('at_stop', 'before_track', 'before_track_delayed', 'canceled', 'off_track', 'on_track')
186
+ left outer join "vehiclepositions_vehicle_descriptors" as "trip->vehicle_descriptor" on
187
+ "trip"."vehicle_registration_number" = "trip->vehicle_descriptor"."registration_number"
188
+ and trip.gtfs_route_type = "trip->vehicle_descriptor".gtfs_route_type;
package/dist/const.d.ts CHANGED
@@ -27,9 +27,5 @@ export declare enum TCPEventEnum {
27
27
  export declare enum RegionalBusEventEnum {
28
28
  DEPARTURED = "R"
29
29
  }
30
- export declare enum PositionTrackingEnum {
31
- NOT_TRACKING = 0,
32
- TRACKING = 2
33
- }
34
30
  export declare const ArrayNotPublicRegistrationNumbers: string[];
35
31
  export declare const DATA_RETENTION_IN_MINUTES = 30;
package/dist/const.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DATA_RETENTION_IN_MINUTES = exports.ArrayNotPublicRegistrationNumbers = exports.PositionTrackingEnum = exports.RegionalBusEventEnum = exports.TCPEventEnum = exports.StateProcessEnum = exports.StatePositionEnum = void 0;
3
+ exports.DATA_RETENTION_IN_MINUTES = exports.ArrayNotPublicRegistrationNumbers = exports.RegionalBusEventEnum = exports.TCPEventEnum = exports.StateProcessEnum = exports.StatePositionEnum = void 0;
4
4
  var StatePositionEnum;
5
5
  (function (StatePositionEnum) {
6
6
  StatePositionEnum["OFF_TRACK"] = "off_track";
@@ -34,11 +34,6 @@ var RegionalBusEventEnum;
34
34
  (function (RegionalBusEventEnum) {
35
35
  RegionalBusEventEnum["DEPARTURED"] = "R";
36
36
  })(RegionalBusEventEnum || (exports.RegionalBusEventEnum = RegionalBusEventEnum = {}));
37
- var PositionTrackingEnum;
38
- (function (PositionTrackingEnum) {
39
- PositionTrackingEnum[PositionTrackingEnum["NOT_TRACKING"] = 0] = "NOT_TRACKING";
40
- PositionTrackingEnum[PositionTrackingEnum["TRACKING"] = 2] = "TRACKING";
41
- })(PositionTrackingEnum || (exports.PositionTrackingEnum = PositionTrackingEnum = {}));
42
37
  exports.ArrayNotPublicRegistrationNumbers = ["2210", "5572"];
43
38
  exports.DATA_RETENTION_IN_MINUTES = 30;
44
39
  //# sourceMappingURL=const.js.map
package/dist/const.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAaX;AAbD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,kDAA6B,CAAA;IAC7B,gDAA2B,CAAA;IAC3B,0CAAqB,CAAA;IACrB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,kEAA6C,CAAA;IAC7C,4CAAuB,CAAA;IACvB,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;AAC7B,CAAC,EAbW,iBAAiB,iCAAjB,iBAAiB,QAa5B;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,mCAAe,CAAA;IACf,2CAAuB,CAAA;AAC3B,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,uCAAuB,CAAA;IACvB,gCAAgB,CAAA;IAChB,gCAAgB,CAAA;IAChB,0BAAU,CAAA;AACd,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC5B,wCAAgB,CAAA;AACpB,CAAC,EAFW,oBAAoB,oCAApB,oBAAoB,QAE/B;AAED,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC5B,+EAAgB,CAAA;IAChB,uEAAY,CAAA;AAChB,CAAC,EAHW,oBAAoB,oCAApB,oBAAoB,QAG/B;AAEY,QAAA,iCAAiC,GAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/D,QAAA,yBAAyB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAAA,IAAY,iBAaX;AAbD,WAAY,iBAAiB;IACzB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,0CAAqB,CAAA;IACrB,kDAA6B,CAAA;IAC7B,gDAA2B,CAAA;IAC3B,0CAAqB,CAAA;IACrB,4CAAuB,CAAA;IACvB,wCAAmB,CAAA;IACnB,kEAA6C,CAAA;IAC7C,4CAAuB,CAAA;IACvB,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;AAC7B,CAAC,EAbW,iBAAiB,iCAAjB,iBAAiB,QAa5B;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IACxB,2CAAuB,CAAA;IACvB,2CAAuB,CAAA;IACvB,mCAAe,CAAA;IACf,2CAAuB,CAAA;AAC3B,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,uCAAuB,CAAA;IACvB,gCAAgB,CAAA;IAChB,gCAAgB,CAAA;IAChB,0BAAU,CAAA;AACd,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAED,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC5B,wCAAgB,CAAA;AACpB,CAAC,EAFW,oBAAoB,oCAApB,oBAAoB,QAE/B;AAEY,QAAA,iCAAiC,GAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/D,QAAA,yBAAyB,GAAG,EAAE,CAAC"}