@golemio/pid 2.7.2 → 2.7.3-dev.874316186

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 (106) hide show
  1. package/db/example/02_pid_line_example_115.sql +8 -8
  2. package/db/example/03_ropidgtfs_dump.sql +7 -7
  3. package/db/example/05_vehicle_positions_dump.sql +25 -25
  4. package/db/example/08_update_delay_dump.sql +106 -106
  5. package/db/example/10_cancelledTrip_example.sql +2 -2
  6. package/db/example/12_metro_line_A_gtfs_trips.sql +12 -12
  7. package/db/example/13_http-propagate-delay.sql +12 -12
  8. package/db/example/14_nightDelays.sql +3 -3
  9. package/db/migrations/postgresql/20230517133728-replace-bigint-timestamps.js +53 -0
  10. package/db/migrations/postgresql/sqls/20230517133728-replace-bigint-timestamps-down.sql +264 -0
  11. package/db/migrations/postgresql/sqls/20230517133728-replace-bigint-timestamps-up.sql +264 -0
  12. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.d.ts +2 -2
  13. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +5 -5
  14. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
  15. package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.d.ts +3 -3
  16. package/dist/integration-engine/vehicle-positions/workers/runs/data-access/CommonRunsRepository.js.map +1 -1
  17. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.d.ts +2 -2
  18. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +1 -1
  19. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
  20. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.d.ts +3 -3
  21. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +2 -2
  22. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
  23. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.d.ts +3 -3
  24. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js +7 -8
  25. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/PositionsRepository.js.map +1 -1
  26. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.d.ts +6 -6
  27. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +12 -12
  28. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
  29. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.d.ts +2 -2
  30. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js +5 -5
  31. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/PositionsMapper.js.map +1 -1
  32. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/RawQueryProvider.js +6 -7
  33. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/RawQueryProvider.js.map +1 -1
  34. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js +2 -2
  35. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js.map +1 -1
  36. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.d.ts +1 -1
  37. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.js +1 -1
  38. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DPPUtils.js.map +1 -1
  39. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DateTimeUtils.d.ts +0 -4
  40. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DateTimeUtils.js +0 -6
  41. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/DateTimeUtils.js.map +1 -1
  42. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.d.ts +3 -3
  43. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js +29 -28
  44. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/PositionsManager.js.map +1 -1
  45. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/ValidToCalculator.d.ts +2 -2
  46. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/ValidToCalculator.js +5 -5
  47. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/ValidToCalculator.js.map +1 -1
  48. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/AbstractDelayAtStop.d.ts +1 -1
  49. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/AbstractDelayAtStop.js +1 -1
  50. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/AbstractDelayAtStop.js.map +1 -1
  51. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js +1 -1
  52. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/MetroDelayAtStop.js.map +1 -1
  53. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/TramDelayAtStop.js +4 -4
  54. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/compute-positions/strategy/TramDelayAtStop.js.map +1 -1
  55. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.d.ts +2 -2
  56. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/AbstractGTFSTripRunManager.js.map +1 -1
  57. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/GTFSTripCommonRunManager.d.ts +2 -2
  58. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/GTFSTripCommonRunManager.js +1 -1
  59. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/gtfs-trip-run/GTFSTripCommonRunManager.js.map +1 -1
  60. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/IUpdateRunsGtfsTripInput.d.ts +10 -0
  61. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/{helpers/interfaces/IGtfsRtRecord.js → interfaces/IUpdateRunsGtfsTripInput.js} +1 -1
  62. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/IUpdateRunsGtfsTripInput.js.map +1 -0
  63. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/TransformationInterfaces.d.ts +2 -2
  64. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/VPInterfaces.d.ts +13 -13
  65. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.d.ts +3 -4
  66. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js.map +1 -1
  67. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateDelayTask.js +2 -2
  68. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/PropagateDelayTask.js.map +1 -1
  69. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.d.ts +3 -3
  70. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js.map +1 -1
  71. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PositionsTransformation.d.ts +1 -1
  72. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PositionsTransformation.js +2 -2
  73. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/transformations/PositionsTransformation.js.map +1 -1
  74. package/dist/output-gateway/pid/data-access/DeparturesRepository.js +1 -1
  75. package/dist/output-gateway/pid/data-access/DeparturesRepository.js.map +1 -1
  76. package/dist/output-gateway/pid/models/RopidVYMIEventsStopsModel.d.ts +12 -6
  77. package/dist/output-gateway/pid/models/RopidVYMIEventsStopsModel.js.map +1 -1
  78. package/dist/output-gateway/shared/RopidRouterUtils.d.ts +1 -1
  79. package/dist/output-gateway/shared/RopidRouterUtils.js +3 -5
  80. package/dist/output-gateway/shared/RopidRouterUtils.js.map +1 -1
  81. package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.d.ts +2 -2
  82. package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js +4 -2
  83. package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js.map +1 -1
  84. package/dist/schema-definitions/ropid-gtfs/models/precomputed/interfaces/IDeparturesModel.d.ts +2 -2
  85. package/dist/schema-definitions/vehicle-positions/models/CommonRunsMessagesModel.d.ts +2 -2
  86. package/dist/schema-definitions/vehicle-positions/models/CommonRunsMessagesModel.js +6 -4
  87. package/dist/schema-definitions/vehicle-positions/models/CommonRunsMessagesModel.js.map +1 -1
  88. package/dist/schema-definitions/vehicle-positions/models/PositionDto.d.ts +7 -7
  89. package/dist/schema-definitions/vehicle-positions/models/PositionDto.js +24 -14
  90. package/dist/schema-definitions/vehicle-positions/models/PositionDto.js.map +1 -1
  91. package/dist/schema-definitions/vehicle-positions/models/VPTripsModel.d.ts +2 -2
  92. package/dist/schema-definitions/vehicle-positions/models/VPTripsModel.js +6 -4
  93. package/dist/schema-definitions/vehicle-positions/models/VPTripsModel.js.map +1 -1
  94. package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.d.ts +6 -0
  95. package/dist/{integration-engine/vehicle-positions/workers/runs/interfaces/ICommonRunWithMessage.js → schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.js} +1 -1
  96. package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.js.map +1 -0
  97. package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunsMessagesModel.d.ts +2 -2
  98. package/dist/schema-definitions/vehicle-positions/models/interfaces/IGtfsRtTripDto.d.ts +1 -1
  99. package/dist/schema-definitions/vehicle-positions/models/interfaces/IPositionDto.d.ts +7 -7
  100. package/dist/schema-definitions/vehicle-positions/models/interfaces/IVPTripsModel.d.ts +2 -2
  101. package/dist/schema-definitions/vehicle-positions/models/interfaces/IVPTripsPositionAttributes.d.ts +9 -9
  102. package/package.json +2 -2
  103. package/dist/integration-engine/vehicle-positions/workers/runs/interfaces/ICommonRunWithMessage.d.ts +0 -6
  104. package/dist/integration-engine/vehicle-positions/workers/runs/interfaces/ICommonRunWithMessage.js.map +0 -1
  105. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/interfaces/IGtfsRtRecord.d.ts +0 -34
  106. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/helpers/interfaces/IGtfsRtRecord.js.map +0 -1
@@ -157,10 +157,10 @@ VALUES
157
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
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
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:24:00') at time zone 'Europe/Prague')*1000,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,EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:30:00' ) at time zone 'Europe/Prague')*1000,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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:31:00') at time zone 'Europe/Prague')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212','212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564213175,FALSE,EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:36:00') at time zone 'Europe/Prague')*1000,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"}'),
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:54:00') at time zone 'Europe/Prague')*1000,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,EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '13:00:00') at time zone 'Europe/Prague')*1000,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
- (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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '13:01:00') at time zone 'Europe/Prague')*1000,3,TRUE,NULL,NULL,NULL,NULL,E'STENBUS',E'212','212',E'STENBUS',1712,E'Nepasické náměstí',NULL,3,NULL,1564424455,FALSE,EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '13:06:00') at time zone 'Europe/Prague')*1000,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"}');
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"}'),
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
+ (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
 
165
165
  --(E'2022-12-23 12:36:58.062+01',NULL,9,NULL,NULL,2.408,FALSE,50.10024,14.66322,E'12:36:27',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '12:36:27')*1000,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,1671795000000,1671795000000,NULL,NULL,NULL,E'processed',E'after_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795687000),
166
166
  --(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',EXTRACT(EPOCH FROM (SELECT now_date FROM init_values) + INTERVAL '12:36:27')*1000,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,1671795300000,1671795300000,1671795360000,1671795360000,NULL,E'processed',E'at_stop',E'U4137Z1P',5,NULL,NULL,E'Všestarská',NULL,NULL,1671795687000),
@@ -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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague')*1000,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,1671795000000,1671795000000,NULL,NULL,NULL,E'processed',E'after_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795687000),
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:36:27') at time zone 'Europe/Prague')*1000,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,1671795300000,1671795300000,1671795360000,1671795360000,NULL,E'processed',E'at_stop',E'U4137Z1P',5,NULL,NULL,E'Všestarská',NULL,NULL,1671795687000),
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:36:27') 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:59.264+01',NULL,1563981368,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,1671796440000,1671796440000,NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795687000),
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:36:27') 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:59.262+01',NULL,1563981367,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,1671796860000,1671796860000,NULL,E'processed',E'before_track',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795687000),
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague')*1000,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,1671795000000,1671795000000,NULL,NULL,NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795687000),
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:56:28') at time zone 'Europe/Prague')*1000,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,1671795300000,1671795300000,1671795360000,1671795360000,NULL,E'input',E'unknown',E'U4137Z1P',5,NULL,NULL,E'Všestarská',NULL,NULL,1671795687000),
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:56:28') 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:59.264+01',NULL,2563981368,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,1671796440000,1671796440000,NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795687000),
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',EXTRACT(EPOCH FROM ((SELECT now_date FROM init_values) + INTERVAL '12:56:28') 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:59.262+01',NULL,2563981367,297,NULL,NULL,NULL,NULL,1,28,NULL,NULL,1671796860000,1671796860000,NULL,E'input',E'unknown',NULL,NULL,NULL,NULL,NULL,NULL,NULL,1671795687000);
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');
@@ -1,14 +1,14 @@
1
1
  /* Fixes data from previous tests */
2
- update vehiclepositions_trips set gtfs_date = TO_TIMESTAMP(start_timestamp/1000)::DATE;
2
+ update vehiclepositions_trips set gtfs_date = start_timestamp::DATE;
3
3
 
4
4
  /* test data for night delay */
5
5
  INSERT INTO vehiclepositions_trips
6
6
  (cis_line_id, cis_trip_number, 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, 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, internal_run_number, internal_route_name,gtfs_date)
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', 1679358600000, 6, false, NULL, NULL, NULL, NULL, 'DP PRAHA', '94', 'DP PRAHA', 8388, 'Sídliště Barrandov', NULL, 0, NULL, 554214346, NULL, 1679362800000, NULL, NULL, 65, '94',current_date - interval '1 day');
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
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', 1679363060000, 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, 1679362800000, 1679362800000, 1679362800000, 1679362800000, '10190002', 'processed', 'on_track', '10190002', NULL, 'V', NULL, 'Sídliště Barrandov', NULL, NULL, NULL, 1679362800000);
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');
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', '20230517133728-replace-bigint-timestamps-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', '20230517133728-replace-bigint-timestamps-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,264 @@
1
+ -- drop dependent views
2
+ drop view v_vehiclepositions_alerts_last_position;
3
+ drop view v_vehiclepositions_all_processed_positions;
4
+ drop view v_vehiclepositions_all_trips_with_last_position;
5
+ drop view v_vehiclepositions_stop_time_delay_prediction;
6
+
7
+
8
+ -- common run messages
9
+ alter table vehiclepositions_runs_messages alter column actual_stop_timestamp_real type bigint using extract(epoch from actual_stop_timestamp_real) * 1000;
10
+ alter table vehiclepositions_runs_messages alter column actual_stop_timestamp_scheduled type bigint using extract(epoch from actual_stop_timestamp_scheduled) * 1000;
11
+
12
+
13
+ -- vp trips (+ history)
14
+ alter table vehiclepositions_trips alter column end_timestamp type bigint using extract(epoch from end_timestamp) * 1000;
15
+ alter table vehiclepositions_trips alter column start_timestamp type bigint using extract(epoch from start_timestamp) * 1000;
16
+ alter table vehiclepositions_trips_history alter column end_timestamp type bigint using extract(epoch from end_timestamp) * 1000;
17
+ alter table vehiclepositions_trips_history alter column start_timestamp type bigint using extract(epoch from start_timestamp) * 1000;
18
+
19
+
20
+ -- vp positions (+ history)
21
+ alter table vehiclepositions_positions alter column last_stop_arrival_time type bigint using extract(epoch from last_stop_arrival_time) * 1000;
22
+ alter table vehiclepositions_positions alter column last_stop_departure_time type bigint using extract(epoch from last_stop_departure_time) * 1000;
23
+ alter table vehiclepositions_positions alter column next_stop_arrival_time type bigint using extract(epoch from next_stop_arrival_time) * 1000;
24
+ alter table vehiclepositions_positions alter column next_stop_departure_time type bigint using extract(epoch from next_stop_departure_time) * 1000;
25
+ alter table vehiclepositions_positions alter column origin_timestamp type bigint using extract(epoch from origin_timestamp) * 1000;
26
+ alter table vehiclepositions_positions alter column scheduled_timestamp type bigint using extract(epoch from scheduled_timestamp) * 1000;
27
+ alter table vehiclepositions_positions alter column valid_to type bigint using extract(epoch from valid_to) * 1000;
28
+ alter table vehiclepositions_positions_history alter column last_stop_arrival_time type bigint using extract(epoch from last_stop_arrival_time) * 1000;
29
+ alter table vehiclepositions_positions_history alter column last_stop_departure_time type bigint using extract(epoch from last_stop_departure_time) * 1000;
30
+ alter table vehiclepositions_positions_history alter column next_stop_arrival_time type bigint using extract(epoch from next_stop_arrival_time) * 1000;
31
+ alter table vehiclepositions_positions_history alter column next_stop_departure_time type bigint using extract(epoch from next_stop_departure_time) * 1000;
32
+ alter table vehiclepositions_positions_history alter column origin_timestamp type bigint using extract(epoch from origin_timestamp) * 1000;
33
+ alter table vehiclepositions_positions_history alter column scheduled_timestamp type bigint using extract(epoch from scheduled_timestamp) * 1000;
34
+ alter table vehiclepositions_positions_history alter column valid_to type bigint using extract(epoch from valid_to) * 1000;
35
+
36
+
37
+ -- functions
38
+ drop function convert_timestamptz_to_iso_string (timestamptz, varchar);
39
+ create function convert_timestamp_ms_to_iso_string(timestamp_ms bigint, timezone varchar DEFAULT 'Europe/Prague') RETURNS varchar AS $$
40
+ select TO_CHAR(DATE_TRUNC('second', TO_TIMESTAMP(timestamp_ms / 1000)) at TIME zone timezone, 'YYYY-MM-DD"T"HH24:MI:SS') || replace('+' || to_char(DATE_TRUNC('second', TO_TIMESTAMP(timestamp_ms / 1000)) at TIME zone timezone - DATE_TRUNC('second', TO_TIMESTAMP(timestamp_ms / 1000)) at TIME zone 'UTC', 'HH24:MMFM'), '+-', '-')
41
+ $$ LANGUAGE SQL IMMUTABLE;
42
+
43
+ CREATE or replace PROCEDURE vehiclepositions_data_retention(inout numberOfRows int, in dataRetentionMinutes int)
44
+ LANGUAGE plpgsql
45
+ AS $procedure$
46
+ declare
47
+ idsForDelete varchar(255)[];
48
+ begin
49
+ select array_agg(t.id) from pid.vehiclepositions_trips t
50
+ left join pid.vehiclepositions_positions p on
51
+ p.id = t.last_position_id
52
+ where
53
+ p.valid_to/1000 < extract(epoch from (NOW() - (dataRetentionMinutes || ' minutes')::interval))
54
+ or (gtfs_trip_id is null and p.created_at < NOW() - (dataRetentionMinutes || ' minutes')::interval) -- entries with valid to is null
55
+ into idsForDelete;
56
+
57
+ INSERT INTO pid.vehiclepositions_trips_history
58
+ select * from pid.vehiclepositions_trips where id = ANY(idsForDelete)
59
+ on conflict do nothing;
60
+
61
+ INSERT INTO pid.vehiclepositions_positions_history
62
+ select * from pid.vehiclepositions_positions where trips_id = ANY(idsForDelete)
63
+ on conflict do nothing;
64
+
65
+ delete from pid.vehiclepositions_positions where trips_id = ANY(idsForDelete);
66
+ delete from pid.vehiclepositions_trips where id = ANY(idsForDelete);
67
+
68
+ select array_length(idsForDelete,1) into numberOfRows;
69
+ end;
70
+ $procedure$;
71
+
72
+
73
+ -- recreate views
74
+ create view v_vehiclepositions_alerts_last_position as
75
+ SELECT t2.created_at,
76
+ t2.updated_at,
77
+ t2.delay,
78
+ t2.delay_stop_arrival,
79
+ t2.delay_stop_departure,
80
+ t2.next_stop_id,
81
+ t2.shape_dist_traveled,
82
+ t2.is_canceled,
83
+ t2.lat,
84
+ t2.lng,
85
+ t2.origin_time,
86
+ t2.origin_timestamp,
87
+ t2.tracking,
88
+ t2.trips_id,
89
+ t2.create_batch_id,
90
+ t2.created_by,
91
+ t2.update_batch_id,
92
+ t2.updated_by,
93
+ t2.id,
94
+ t2.bearing,
95
+ t2.cis_last_stop_id,
96
+ t2.cis_last_stop_sequence,
97
+ t2.last_stop_id,
98
+ t2.last_stop_sequence,
99
+ t2.next_stop_sequence,
100
+ t2.speed,
101
+ t2.last_stop_arrival_time,
102
+ t2.last_stop_departure_time,
103
+ t2.next_stop_arrival_time,
104
+ t2.next_stop_departure_time,
105
+ t2.asw_last_stop_id,
106
+ t1.gtfs_route_id,
107
+ t1.gtfs_route_short_name,
108
+ t1.gtfs_route_type,
109
+ t1.gtfs_trip_id,
110
+ t1.gtfs_trip_headsign,
111
+ t1.vehicle_type_id,
112
+ t1.wheelchair_accessible
113
+ FROM (vehiclepositions_trips t1
114
+ LEFT JOIN vehiclepositions_positions t2 ON ((t1.last_position_id = t2.id)))
115
+ 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])))
116
+ ORDER BY t2.trips_id, t2.updated_at DESC;
117
+
118
+ comment on view v_vehiclepositions_alerts_last_position is '
119
+ Used only for alerting purposes.
120
+ ';
121
+
122
+
123
+ create view v_vehiclepositions_all_processed_positions as
124
+ select
125
+ trips_id,
126
+ bearing,
127
+ "delay",
128
+ delay_stop_arrival,
129
+ delay_stop_departure,
130
+ vp.is_canceled,
131
+ convert_timestamp_ms_to_iso_string(last_stop_arrival_time) as last_stop_arrival_time_isostring,
132
+ convert_timestamp_ms_to_iso_string(last_stop_departure_time) as last_stop_departure_time_isostring,
133
+ last_stop_id,
134
+ last_stop_sequence,
135
+ lat,
136
+ lng,
137
+ convert_timestamp_ms_to_iso_string(next_stop_arrival_time) as next_stop_arrival_time_isostring,
138
+ convert_timestamp_ms_to_iso_string(next_stop_departure_time) as next_stop_departure_time_isostring,
139
+ next_stop_id,
140
+ next_stop_sequence,
141
+ convert_timestamp_ms_to_iso_string(origin_timestamp) as origin_timestamp_isostring,
142
+ shape_dist_traveled,
143
+ speed,
144
+ state_position
145
+ from
146
+ vehiclepositions_positions vp
147
+ where state_process = 'processed';
148
+
149
+ comment on view v_vehiclepositions_all_processed_positions is '
150
+ View of all processed positions. Used for enriching trips from v_vehiclepositions_all_trips_with_last_position with all positions.
151
+ ';
152
+
153
+
154
+ create view v_vehiclepositions_all_trips_with_last_position as
155
+ select
156
+ vt.id,
157
+ vt.agency_name_real,
158
+ vt.agency_name_scheduled,
159
+ vt.cis_line_id,
160
+ vt.cis_trip_number,
161
+ vt.gtfs_route_id,
162
+ vt.gtfs_route_short_name,
163
+ vt.gtfs_route_type,
164
+ vt.gtfs_trip_headsign,
165
+ vt.gtfs_trip_short_name,
166
+ vt.gtfs_trip_id,
167
+ vt.origin_route_name,
168
+ vt.run_number,
169
+ vt.vehicle_registration_number,
170
+ vt.vehicle_type_id,
171
+ vt.wheelchair_accessible,
172
+ vt.updated_at,
173
+ convert_timestamp_ms_to_iso_string(vt.start_timestamp) as start_timestamp_isostring,
174
+ vp.bearing,
175
+ vp.delay,
176
+ vp.delay_stop_arrival,
177
+ vp.delay_stop_departure,
178
+ vp.is_canceled,
179
+ vp.last_stop_id,
180
+ vp.last_stop_sequence,
181
+ vp.last_stop_headsign,
182
+ vp.lat,
183
+ vp.lng,
184
+ vp.next_stop_id,
185
+ vp.next_stop_sequence,
186
+ vp.shape_dist_traveled,
187
+ vp.speed,
188
+ vp.state_position,
189
+ vp.tracking,
190
+ convert_timestamp_ms_to_iso_string(vp.last_stop_arrival_time) as last_stop_arrival_time_isostring,
191
+ convert_timestamp_ms_to_iso_string(vp.last_stop_departure_time) as last_stop_departure_time_isostring,
192
+ convert_timestamp_ms_to_iso_string(vp.next_stop_arrival_time) as next_stop_arrival_time_isostring,
193
+ convert_timestamp_ms_to_iso_string(vp.next_stop_departure_time) as next_stop_departure_time_isostring,
194
+ convert_timestamp_ms_to_iso_string(vp.origin_timestamp) as origin_timestamp_isostring
195
+ from
196
+ vehiclepositions_trips vt
197
+ inner join vehiclepositions_positions vp on
198
+ vt.last_position_id = vp.id
199
+ and (vp.valid_to is null
200
+ or vp.valid_to >= extract(epoch from now()) * 1000)
201
+ and vp.state_process = 'processed';
202
+
203
+ comment on view v_vehiclepositions_all_trips_with_last_position is '
204
+ View of all trips with last processed position. Used for serving data to the vehiclepositions output API.
205
+ ';
206
+
207
+
208
+ create view v_vehiclepositions_stop_time_delay_prediction as
209
+ with recursive stop_times as (
210
+ select
211
+ rst.trip_id,
212
+ vt.provider_source_type,
213
+ vp.delay,
214
+ coalesce(vp.last_stop_sequence, 1) as initial_stop_sequence,
215
+ vp.state_position,
216
+ rst.stop_sequence,
217
+ rst.stop_id,
218
+ rst.computed_dwell_time_seconds,
219
+ case when vp.last_stop_sequence is null
220
+ then vp.delay
221
+ else vp.delay_stop_arrival
222
+ end as arrival_delay_seconds,
223
+ case when vp.last_stop_sequence is null
224
+ then predict_delay_seconds(vp.delay, rst.computed_dwell_time_seconds, vt.provider_source_type)
225
+ when vp.state_position = 'at_stop'
226
+ then case when vt.provider_source_type = '1' then greatest(0, vp.delay) else vp.delay end
227
+ else vp.delay_stop_departure
228
+ end as departure_delay_seconds
229
+ from ropidgtfs_stop_times rst
230
+ inner join vehiclepositions_trips vt on vt.gtfs_trip_id = rst.trip_id
231
+ inner join vehiclepositions_positions vp on vp.id = vt.last_position_id
232
+ and (vp.valid_to is null or vp.valid_to >= extract(epoch from now()) * 1000)
233
+ where
234
+ vt.gtfs_trip_id is not null
235
+ and rst.stop_sequence = coalesce(vp.last_stop_sequence, 1)
236
+ union all
237
+ select
238
+ rst.trip_id,
239
+ previous_row.provider_source_type,
240
+ previous_row.delay,
241
+ previous_row.initial_stop_sequence,
242
+ previous_row.state_position,
243
+ rst.stop_sequence,
244
+ rst.stop_id,
245
+ rst.computed_dwell_time_seconds,
246
+ case when rst.stop_sequence - previous_row.initial_stop_sequence = 1 and previous_row.state_position != 'at_stop'
247
+ then previous_row.delay
248
+ else previous_row.departure_delay_seconds
249
+ end as arrival_delay_seconds,
250
+ predict_delay_seconds(
251
+ case when rst.stop_sequence - previous_row.initial_stop_sequence = 1 and previous_row.state_position != 'at_stop' then previous_row.delay else previous_row.departure_delay_seconds end,
252
+ rst.computed_dwell_time_seconds,
253
+ previous_row.provider_source_type
254
+ ) as departure_delay_seconds
255
+ from stop_times previous_row
256
+ inner join ropidgtfs_stop_times rst on rst.trip_id = previous_row.trip_id and rst.stop_sequence = previous_row.stop_sequence + 1
257
+ )
258
+ select trip_id, stop_sequence, stop_id, arrival_delay_seconds, departure_delay_seconds
259
+ from stop_times
260
+ order by trip_id, stop_sequence;
261
+
262
+ comment on view v_vehiclepositions_stop_time_delay_prediction is '
263
+ This view contains the predicted delay of a vehicle at each stop.
264
+ ';