@golemio/pid 5.4.2 → 5.4.3-dev.2276721144

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 (68) hide show
  1. package/db/example/00_clear_test_data.sql +1 -0
  2. package/db/example/03_ropidgtfs_dump.sql +43 -38
  3. package/db/example/14_nightDelays.sql +17 -8
  4. package/db/example/redis/publicDelayCompObjectMock.json +7 -0
  5. package/db/migrations/postgresql/20251229142106-use-gtfs-icons-in-transferboards.js +53 -0
  6. package/db/migrations/postgresql/20260119180905-add-precomputed-trip-connections.js +53 -0
  7. package/db/migrations/postgresql/sqls/20251229142106-use-gtfs-icons-in-transferboards-down.sql +1 -0
  8. package/db/migrations/postgresql/sqls/20251229142106-use-gtfs-icons-in-transferboards-up.sql +1 -0
  9. package/db/migrations/postgresql/sqls/20260119180905-add-precomputed-trip-connections-down.sql +72 -0
  10. package/db/migrations/postgresql/sqls/20260119180905-add-precomputed-trip-connections-up.sql +91 -0
  11. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.d.ts +1 -0
  12. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.js +8 -0
  13. package/dist/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.js.map +1 -1
  14. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.d.ts +2 -0
  15. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js +4 -6
  16. package/dist/integration-engine/ropid-gtfs/RopidGTFSTripsModel.js.map +1 -1
  17. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.d.ts +1 -0
  18. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js +2 -0
  19. package/dist/integration-engine/ropid-gtfs/RopidGtfsFacade.js.map +1 -1
  20. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js +9 -1
  21. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/DeparturesRepository.js.map +1 -1
  22. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripConnectionsRepository.d.ts +6 -0
  23. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripConnectionsRepository.js +46 -0
  24. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/TripConnectionsRepository.js.map +1 -0
  25. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/index.d.ts +1 -0
  26. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/index.js +1 -0
  27. package/dist/integration-engine/ropid-gtfs/data-access/precomputed/index.js.map +1 -1
  28. package/dist/integration-engine/ropid-gtfs/interfaces/IPublicDepartureDto.d.ts +5 -0
  29. package/dist/integration-engine/ropid-gtfs/interfaces/TripModelInterfaces.d.ts +1 -0
  30. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js +5 -0
  31. package/dist/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.js.map +1 -1
  32. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.d.ts +1 -0
  33. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js +4 -0
  34. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/helpers/PrecomputedTablesFacade.js.map +1 -1
  35. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.d.ts +1 -0
  36. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js +13 -0
  37. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/TripsRepository.js.map +1 -1
  38. package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js +1 -3
  39. package/dist/output-gateway/pid/controllers/v4/V4TransferBoardsController.js.map +1 -1
  40. package/dist/output-gateway/pid/helpers/TransferBoardIconsResolver.d.ts +1 -3
  41. package/dist/output-gateway/pid/helpers/TransferBoardIconsResolver.js +5 -33
  42. package/dist/output-gateway/pid/helpers/TransferBoardIconsResolver.js.map +1 -1
  43. package/dist/output-gateway/pid/interfaces/IV4TransferDto.d.ts +4 -1
  44. package/dist/output-gateway/pid/service/facade/TransferFacade.js +2 -1
  45. package/dist/output-gateway/pid/service/facade/TransferFacade.js.map +1 -1
  46. package/dist/output-gateway/pid/service/transformations/TransferDepartureCacheTransformation.d.ts +1 -1
  47. package/dist/output-gateway/pid/service/transformations/TransferDepartureCacheTransformation.js +2 -1
  48. package/dist/output-gateway/pid/service/transformations/TransferDepartureCacheTransformation.js.map +1 -1
  49. package/dist/output-gateway/public/service/transformations/scopes/PublicVPTripStopTimesTransformation.js.map +1 -1
  50. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.d.ts +32 -0
  51. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js +34 -0
  52. package/dist/schema-definitions/ropid-gtfs/RopidGTFSPrecomputed.js.map +1 -1
  53. package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.d.ts +2 -0
  54. package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js +17 -0
  55. package/dist/schema-definitions/ropid-gtfs/models/precomputed/DeparturesModel.js.map +1 -1
  56. package/dist/schema-definitions/ropid-gtfs/models/precomputed/interfaces/IDeparturesModel.d.ts +6 -0
  57. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IDelayComputationDto.d.ts +1 -0
  58. package/dist/schema-definitions/ropid-gtfs/redis/interfaces/IPublicGtfsDepartureCacheDto.d.ts +5 -0
  59. package/dist/schema-definitions/ropid-gtfs/redis/schemas/DelayComputationDtoSchema.js +2 -0
  60. package/dist/schema-definitions/ropid-gtfs/redis/schemas/DelayComputationDtoSchema.js.map +1 -1
  61. package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js +31 -0
  62. package/dist/schema-definitions/ropid-gtfs/redis/schemas/PublicGtfsDepartureDtoSchema.js.map +1 -1
  63. package/docs/assets/pid_precomputed_erd.png +0 -0
  64. package/docs/assets/pid_preset_logs_and_static_erd.png +0 -0
  65. package/docs/implementation_documentation.md +4 -4
  66. package/docs/openapi-output.yaml +2 -0
  67. package/package.json +2 -2
  68. package/docs/assets/pid_preset_logs_erd.png +0 -0
@@ -38,6 +38,7 @@ TRUNCATE
38
38
  "ropidgtfs_precomputed_services_calendar_actual",
39
39
  "ropidgtfs_precomputed_minmax_stop_sequences_actual",
40
40
  "ropidgtfs_precomputed_departures",
41
+ "ropidgtfs_precomputed_trip_connections",
41
42
  "ropid_departures_presets_ropidgtfs_stops";
42
43
 
43
44
  ALTER SEQUENCE ropid_departures_directions_id_seq RESTART;
@@ -6,7 +6,7 @@ WITH init_values AS (SELECT NOW()::DATE AS now_date)
6
6
  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)
7
7
  VALUES
8
8
  (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '7 days','YYYYMMDD'), 1, 1, 1, '1111111-1', TO_CHAR((SELECT now_date FROM init_values)-INTERVAL '1 days','YYYYMMDD'), 1, 1, 1, 1, NULL, '2019-05-27 03:20:15.632+00', NULL, NULL, '2019-05-27 03:20:15.632+00', NULL),
9
- (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '7 days','YYYYMMDD'), 1, 1, 1, '1111100-1', TO_CHAR((SELECT now_date FROM init_values)-INTERVAL '1 days','YYYYMMDD'), 1, 1, 1, 1, -1, '2022-10-24 10:18:51.362+02',NULL,-1,'2022-10-24 10:18:51.362+02',NULL);
9
+ (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '7 days','YYYYMMDD'), 1, 1, 1, '1111100-1', TO_CHAR((SELECT now_date FROM init_values)-INTERVAL '1 days','YYYYMMDD'), 1, 1, 1, 1, -1, '2022-10-24 10:18:51.362+02',NULL,-1,'2022-10-24 10:18:51.362+02',NULL);
10
10
 
11
11
  INSERT INTO ropidgtfs_routes_actual (agency_id, is_night, is_regional, is_substitute_transport, route_color, route_desc, route_id, route_long_name, route_short_name, route_text_color, route_type, route_url, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by)
12
12
  VALUES ('99', '0', '0', '0', '00A562', NULL, 'L991', 'Nemocnice Motol - Petřiny - Skalka - Depo Hostivař', 'A', 'FFFFFF', '1', 'https://pid.cz/linka/A', NULL, '2019-05-27 03:20:15.738+00', NULL, NULL, '2019-05-27 03:20:15.738+00', NULL);
@@ -54,7 +54,7 @@ INSERT INTO ropidgtfs_stops_actual ("location_type", "parent_station", "platform
54
54
  INSERT INTO ropidgtfs_stops_actual ("location_type", "parent_station", "platform_code", "stop_id", "stop_lat", "stop_lon", "stop_name", "stop_url", "wheelchair_boarding", "zone_id", "create_batch_id", "created_at", "created_by", "update_batch_id", "updated_at", "updated_by", "level_id", "stop_code", "stop_desc", "stop_timezone") VALUES (1, '', '', 'U306S1', 50.07541, 14.34152, 'Nemocnice Motol', '', 1, 'P', -1, '2020-12-04 12:30:26.312286+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL);
55
55
 
56
56
  INSERT INTO ropidgtfs_cis_stop_groups_actual (avg_jtsk_x,avg_jtsk_y,avg_lat,avg_lon,cis,district_code,full_name,idos_category,idos_name,municipality,name,node,unique_name,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
57
- (-739208.1,-1044513.56,50.0785027,14.4739637,27902,'AB','Želivského','301003','Želivského','Praha','Želivského',921,'Želivského',NULL,'2024-10-31 05:23:06.850',NULL,NULL,'2024-10-31 05:23:06.850',NULL);
57
+ (-739208.1,-1044513.56,50.0785027,14.4739637,27902,'AB','Želivského','301003','Želivského','Praha','Želivského',921,'Želivského',NULL,'2024-10-31 05:23:06.850',NULL,NULL,'2024-10-31 05:23:06.850',NULL);
58
58
 
59
59
  INSERT INTO ropidgtfs_trips_actual (bikes_allowed, block_id, direction_id, exceptional, route_id, service_id, shape_id, trip_headsign, trip_id, wheelchair_accessible, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by, trip_operation_type, trip_short_name) VALUES (1, '', 0, 0, 'L991', '1111111-1', 'L991V1', 'Nemocnice Motol', '991_1151_190107', 1, NULL, '2019-05-27 03:20:24.44+00', NULL, NULL, '2019-05-27 03:20:24.44+00', NULL, 1, '');
60
60
  INSERT INTO ropidgtfs_trips_actual (bikes_allowed, block_id, direction_id, exceptional, route_id, service_id, shape_id, trip_headsign, trip_id, wheelchair_accessible, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by, trip_operation_type, trip_short_name) VALUES (1, '', 1, 0, 'L991', '1111111-1', 'L991V2', 'Depo Hostivař', '991_4_190107', 1, NULL, '2019-05-27 03:20:24.44+00', NULL, NULL, '2019-05-27 03:20:24.44+00', NULL, 1, '');
@@ -68,43 +68,48 @@ INSERT INTO ropidgtfs_trips_actual (bikes_allowed, block_id, direction_id, excep
68
68
  INSERT INTO ropidgtfs_trips_actual (bikes_allowed, block_id, direction_id, exceptional, route_id, service_id, shape_id, trip_headsign, trip_id, wheelchair_accessible, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by, trip_operation_type, trip_short_name) VALUES (1, '', 1, 0, 'L991', '1111111-1', 'L991V2', 'Depo Hostivař', '991_12_180709', 1, NULL, '2019-05-27 03:20:24.44+00', NULL, NULL, '2019-05-27 03:20:24.44+00', NULL, 1, '');
69
69
 
70
70
  INSERT INTO ropidgtfs_transfers_actual (from_stop_id,to_stop_id,from_trip_id,to_trip_id,transfer_type,min_transfer_time,max_waiting_time,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
71
- ('U1383Z301','U1383Z301',NULL,NULL,'2'::ropidgtfs_transfer_type,120,0,NULL,'2026-01-19 14:26:06.239969+01',NULL,NULL,'2026-01-19 14:26:06.239969+01',NULL),
72
- ('U458Z9P','U458Z301',NULL,NULL,'2'::ropidgtfs_transfer_type,180,0,NULL,'2026-01-19 14:26:06.239969+01',NULL,NULL,'2026-01-19 14:26:06.239969+01',NULL),
73
- ('U651Z2P','U651Z5P','93_1656_251110','903_101_251112','1'::ropidgtfs_transfer_type,NULL,600,NULL,'2026-01-19 14:26:06.239969+01',NULL,NULL,'2026-01-19 14:26:06.239969+01',NULL),
74
- ('U97Z1P','U97Z2P','109_1121_241216','163_1154_260101','1'::ropidgtfs_transfer_type,NULL,120,NULL,'2026-01-19 14:26:06.239969+01',NULL,NULL,'2026-01-19 14:26:06.239969+01',NULL),
75
- ('U97Z1P','U97Z2P','109_241_251004','163_1154_260101','1'::ropidgtfs_transfer_type,NULL,120,NULL,'2026-01-19 14:26:06.239969+01',NULL,NULL,'2026-01-19 14:26:06.239969+01',NULL),
76
- ('U28Z1P','U28Z1P','221_2169_260112','163_1154_260101','1'::ropidgtfs_transfer_type,NULL,180,NULL,'2026-01-19 14:26:06.239969+01',NULL,NULL,'2026-01-19 14:26:06.239969+01',NULL),
77
- ('U1071Z3P','U1071Z3P','909_271_251110','916_175_260101','1'::ropidgtfs_transfer_type,NULL,180,NULL,'2026-01-19 14:26:06.239969+01',NULL,NULL,'2026-01-19 14:26:06.239969+01',NULL);
71
+ ('U1383Z301','U1383Z301',NULL,NULL,'2'::ropidgtfs_transfer_type,120,0,NULL,'2026-01-19 14:26:06.239969+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
72
+ ('U458Z9P','U458Z301',NULL,NULL,'2'::ropidgtfs_transfer_type,180,0,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
73
+ ('U651Z2P','U651Z5P','93_1656_251110','903_101_251112','1'::ropidgtfs_transfer_type,NULL,600,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
74
+ ('U97Z1P','U97Z2P','109_1121_241216','163_1154_260101','1'::ropidgtfs_transfer_type,NULL,120,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
75
+ ('U97Z1P','U97Z2P','109_241_251004','163_1154_260101','1'::ropidgtfs_transfer_type,NULL,120,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
76
+ ('U28Z1P','U28Z1P','221_2169_260112','163_1154_260101','1'::ropidgtfs_transfer_type,NULL,180,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
77
+ ('U873Z1P','U873Z2P','94_979_230320','94_922_230320','1'::ropidgtfs_transfer_type,NULL,180,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
78
+ ('U873Z2P','U873Z1P','94_922_230320','94_979_230320','1'::ropidgtfs_transfer_type,NULL,180,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
79
+ ('U461Z1P','U461Z2P','133_7777_241029','103_1237_241029','1'::ropidgtfs_transfer_type,NULL,300,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
80
+ ('U461Z2P','U461Z1P','103_1237_241029','133_7777_241029','1'::ropidgtfs_transfer_type,NULL,300,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
81
+ ('U476Z1P','U476Z301','133_7777_241029','1309_9127_231211','1'::ropidgtfs_transfer_type,NULL,180,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL),
82
+ ('U1071Z3P','U1071Z3P','909_271_251110','916_175_260101','1'::ropidgtfs_transfer_type,NULL,180,NULL,'2026-01-19 14:26:06.000+01',NULL,NULL,'2026-01-19 14:26:06.000+01',NULL);
78
83
 
79
84
  WITH init_values AS (SELECT NOW()::DATE AS now_date)
80
85
  INSERT INTO ropidgtfs_calendar_dates_actual (date, exception_type, service_id, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by)
81
- VALUES (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '2 days','YYYYMMDD'), 2, '1111111-1', NULL, NULL, NULL, NULL, NULL, NULL),
82
- (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '14 days','YYYYMMDD'), 1, '1111111-1', NULL, NULL, NULL, NULL, NULL, NULL);
86
+ VALUES (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '2 days','YYYYMMDD'), 2, '1111111-1', NULL, NULL, NULL, NULL, NULL, NULL),
87
+ (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '14 days','YYYYMMDD'), 1, '1111111-1', NULL, NULL, NULL, NULL, NULL, NULL);
83
88
 
84
89
 
85
90
  -- >>> FOR STOPS ASW & CIS PARAMS TESTS
86
91
 
87
92
  INSERT INTO "ropidgtfs_stops_actual" ("location_type", "parent_station", "platform_code", "stop_id", "stop_lat", "stop_lon", "stop_name", "stop_url", "wheelchair_boarding", "zone_id", "create_batch_id", "created_at", "created_by", "update_batch_id", "updated_at", "updated_by", "level_id", "stop_code", "stop_desc", "stop_timezone", "asw_node_id", "asw_stop_id") VALUES
88
- (0, '', 'A', 'U286Z1P', 50.03046, 14.52744, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 1),
89
- (0, '', 'B', 'U286Z2P', 50.03045, 14.527, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 2),
90
- (0, '', 'C', 'U286Z3P', 50.03038, 14.52585, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 3),
91
- (0, '', 'D', 'U286Z4', 50.03036, 14.52538, 'Háje', '', 0, '0', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 4),
92
- (0, '', 'E', 'U286Z5P', 50.03028, 14.52752, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 5),
93
- (0, '', 'C', 'U286Z13P', 50.03038, 14.52585, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 13),
94
- (0, '', 'B', 'U286Z72', 50.03045, 14.527, 'Háje', '', 0, '0', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 72),
95
- (0, 'U286S1', '1', 'U286Z101P', 50.03083, 14.52696, 'Háje', '', 1, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, 'U286L2', NULL, NULL, NULL, 286, 101),
96
- (0, 'U286S1', '2', 'U286Z102P', 50.03074, 14.52698, 'Háje', '', 1, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, 'U286L2', NULL, NULL, NULL, 286, 102);
93
+ (0, '', 'A', 'U286Z1P', 50.03046, 14.52744, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 1),
94
+ (0, '', 'B', 'U286Z2P', 50.03045, 14.527, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 2),
95
+ (0, '', 'C', 'U286Z3P', 50.03038, 14.52585, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 3),
96
+ (0, '', 'D', 'U286Z4', 50.03036, 14.52538, 'Háje', '', 0, '0', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 4),
97
+ (0, '', 'E', 'U286Z5P', 50.03028, 14.52752, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 5),
98
+ (0, '', 'C', 'U286Z13P', 50.03038, 14.52585, 'Háje', '', 0, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 13),
99
+ (0, '', 'B', 'U286Z72', 50.03045, 14.527, 'Háje', '', 0, '0', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, '', NULL, NULL, NULL, 286, 72),
100
+ (0, 'U286S1', '1', 'U286Z101P', 50.03083, 14.52696, 'Háje', '', 1, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, 'U286L2', NULL, NULL, NULL, 286, 101),
101
+ (0, 'U286S1', '2', 'U286Z102P', 50.03074, 14.52698, 'Háje', '', 1, 'P', -1, '2020-11-19 12:30:36.671771+01', 'integration-engine', NULL, NULL, NULL, 'U286L2', NULL, NULL, NULL, 286, 102);
97
102
 
98
103
  INSERT INTO "ropidgtfs_cis_stops_actual" ("alt_idos_name", "cis", "id", "jtsk_x", "jtsk_y", "lat", "lon", "platform", "created_at", "wheelchair_access", "zone", "create_batch_id", "created_by", "update_batch_id", "updated_at", "updated_by") VALUES
99
- ('Háje (ul. Opatovská)', 55083, '286/1', -736136.5, -1050325.75, 50.03046, 14.527442, 'A', '2020-11-20 12:30:11.942+01', 'unknown', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
100
- ('Háje', 55083, '286/2', -736168.4, -1050322.63, 50.03045, 14.5269957, 'B', '2020-11-20 12:30:11.942+01', 'unknown', 'P,0', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
101
- ('Háje', 55083, '286/3', -736250.9, -1050318.63, 50.0303841, 14.5258474, 'C', '2020-11-20 12:30:11.942+01', 'unknown', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
102
- ('Háje', 55083, '286/4', -736284.5, -1050316.5, 50.03036, 14.5253782, 'D', '2020-11-20 12:30:11.942+01', 'unknown', 'P,0', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
103
- ('Háje (ul. Opatovská)', 55083, '286/5', -736133.438, -1050346.13, 50.03028, 14.527523, 'E', '2020-11-20 12:30:11.942+01', 'unknown', 'P,0', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
104
- ('Háje', 55083, '286/13', -736250.9, -1050318.63, 50.0303841, 14.5258474, 'C', '2020-11-20 12:30:11.942+01', 'unknown', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
105
- ('Háje', 55083, '286/72', -736168.4, -1050322.63, 50.03045, 14.5269957, 'B', '2020-11-20 12:30:11.942+01', 'unknown', '0', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
106
- ('Háje', 55083, '286/101', -736215.063, -1050281.63, 50.0307579, 14.5262728, 'M1', '2020-11-20 12:30:11.942+01', 'possible', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
107
- ('Háje', 55083, '286/102', -736114.75, -1050289.25, 50.03081, 14.5276747, 'M2', '2020-11-20 12:30:11.942+01', 'possible', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL);
104
+ ('Háje (ul. Opatovská)', 55083, '286/1', -736136.5, -1050325.75, 50.03046, 14.527442, 'A', '2020-11-20 12:30:11.942+01', 'unknown', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
105
+ ('Háje', 55083, '286/2', -736168.4, -1050322.63, 50.03045, 14.5269957, 'B', '2020-11-20 12:30:11.942+01', 'unknown', 'P,0', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
106
+ ('Háje', 55083, '286/3', -736250.9, -1050318.63, 50.0303841, 14.5258474, 'C', '2020-11-20 12:30:11.942+01', 'unknown', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
107
+ ('Háje', 55083, '286/4', -736284.5, -1050316.5, 50.03036, 14.5253782, 'D', '2020-11-20 12:30:11.942+01', 'unknown', 'P,0', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
108
+ ('Háje (ul. Opatovská)', 55083, '286/5', -736133.438, -1050346.13, 50.03028, 14.527523, 'E', '2020-11-20 12:30:11.942+01', 'unknown', 'P,0', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
109
+ ('Háje', 55083, '286/13', -736250.9, -1050318.63, 50.0303841, 14.5258474, 'C', '2020-11-20 12:30:11.942+01', 'unknown', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
110
+ ('Háje', 55083, '286/72', -736168.4, -1050322.63, 50.03045, 14.5269957, 'B', '2020-11-20 12:30:11.942+01', 'unknown', '0', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
111
+ ('Háje', 55083, '286/101', -736215.063, -1050281.63, 50.0307579, 14.5262728, 'M1', '2020-11-20 12:30:11.942+01', 'possible', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL),
112
+ ('Háje', 55083, '286/102', -736114.75, -1050289.25, 50.03081, 14.5276747, 'M2', '2020-11-20 12:30:11.942+01', 'possible', 'P', NULL, NULL, NULL, '2020-11-20 12:30:11.942+01', NULL);
108
113
 
109
114
  -- <<<
110
115
 
@@ -112,14 +117,14 @@ INSERT INTO "ropidgtfs_cis_stops_actual" ("alt_idos_name", "cis", "id", "jtsk_x"
112
117
  -- first origin, second with suffix _DATE in stop_id with changed attribute, i.e. stop_name
113
118
 
114
119
  INSERT INTO "ropidgtfs_cis_stops_actual" ("alt_idos_name", "cis", "id", "jtsk_x", "jtsk_y", "lat", "lon", "platform", "created_at", "wheelchair_access", "zone", "create_batch_id", "created_by", "update_batch_id", "updated_at", "updated_by") VALUES
115
- ('Fučíkova', 27878, '115/101', -741166.3, -1040788.06, 50.1092949, 14.4397736, 'M1', '2020-11-26 12:30:18.675+01', 'possible', 'P', NULL, NULL, NULL, '2020-11-26 12:30:18.675+01', NULL),
116
- ('Fučíkova', 27878, '115/102', -741135.438, -1040877.69, 50.1085358, 14.4403725, 'M2', '2020-11-26 12:30:18.675+01', 'possible', 'P', NULL, NULL, NULL, '2020-11-26 12:30:18.675+01', NULL);
120
+ ('Fučíkova', 27878, '115/101', -741166.3, -1040788.06, 50.1092949, 14.4397736, 'M1', '2020-11-26 12:30:18.675+01', 'possible', 'P', NULL, NULL, NULL, '2020-11-26 12:30:18.675+01', NULL),
121
+ ('Fučíkova', 27878, '115/102', -741135.438, -1040877.69, 50.1085358, 14.4403725, 'M2', '2020-11-26 12:30:18.675+01', 'possible', 'P', NULL, NULL, NULL, '2020-11-26 12:30:18.675+01', NULL);
117
122
 
118
123
  INSERT INTO "ropidgtfs_stops_actual" ("location_type", "parent_station", "platform_code", "stop_id", "stop_lat", "stop_lon", "stop_name", "stop_url", "wheelchair_boarding", "zone_id", "create_batch_id", "created_at", "created_by", "update_batch_id", "updated_at", "updated_by", "level_id", "stop_code", "stop_desc", "stop_timezone", "asw_node_id", "asw_stop_id") VALUES
119
- (0, 'U115S1', '1', 'U115Z101P', 50.10896, 14.44016, 'Fučíkova', '', 1, 'P', -1, '2020-11-24 12:30:42.560064+01', 'integration-engine', NULL, NULL, NULL, 'U115L1', NULL, NULL, NULL, 115, 101),
120
- (0, 'U115S1', '2', 'U115Z102P', 50.10892, 14.44002, 'Fučíkova', '', 1, 'P', -1, '2020-11-24 12:30:42.560064+01', 'integration-engine', NULL, NULL, NULL, 'U115L1', NULL, NULL, NULL, 115, 102),
121
- (0, 'U115S1', '1', 'U115Z101P_900222', 50.10896, 14.44016, 'Nádraží Holešovice', '', 1, 'P', -1, '2020-11-24 12:30:42.560064+01', 'integration-engine', NULL, NULL, NULL, 'U115L1', NULL, NULL, NULL, 115, 101),
122
- (0, 'U115S1', '2', 'U115Z102P_900222', 50.10892, 14.44002, 'Nádraží Holešovice', '', 1, 'P', -1, '2020-11-24 12:30:42.560064+01', 'integration-engine', NULL, NULL, NULL, 'U115L1', NULL, NULL, NULL, 115, 102);
124
+ (0, 'U115S1', '1', 'U115Z101P', 50.10896, 14.44016, 'Fučíkova', '', 1, 'P', -1, '2020-11-24 12:30:42.560064+01', 'integration-engine', NULL, NULL, NULL, 'U115L1', NULL, NULL, NULL, 115, 101),
125
+ (0, 'U115S1', '2', 'U115Z102P', 50.10892, 14.44002, 'Fučíkova', '', 1, 'P', -1, '2020-11-24 12:30:42.560064+01', 'integration-engine', NULL, NULL, NULL, 'U115L1', NULL, NULL, NULL, 115, 102),
126
+ (0, 'U115S1', '1', 'U115Z101P_900222', 50.10896, 14.44016, 'Nádraží Holešovice', '', 1, 'P', -1, '2020-11-24 12:30:42.560064+01', 'integration-engine', NULL, NULL, NULL, 'U115L1', NULL, NULL, NULL, 115, 101),
127
+ (0, 'U115S1', '2', 'U115Z102P_900222', 50.10892, 14.44002, 'Nádraží Holešovice', '', 1, 'P', -1, '2020-11-24 12:30:42.560064+01', 'integration-engine', NULL, NULL, NULL, 'U115L1', NULL, NULL, NULL, 115, 102);
123
128
 
124
129
  -- <<<
125
130
 
@@ -553,11 +558,11 @@ VALUES
553
558
  (E'L991',1,E'1111100-1',E'991_1_210419',3,NULL,E'2021-05-19 05:35:04.963+02',NULL,NULL,NULL,E'2021-05-19 05:35:04.963+02',NULL);
554
559
 
555
560
  INSERT INTO ropidgtfs_trips_actual (trip_id,bikes_allowed,block_id,direction_id,exceptional,route_id,service_id,shape_id,trip_headsign,trip_operation_type,trip_short_name,wheelchair_accessible,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
556
- ('991_1_210419',1,NULL,0,0,'L991','0000001-1','L991V2','Nemocnice Motol',NULL,NULL,1,NULL,'2023-04-09 05:27:39.626',NULL,NULL,'2023-04-09 05:27:39.626',NULL);
561
+ ('991_1_210419',1,NULL,0,0,'L991','0000001-1','L991V2','Nemocnice Motol',NULL,NULL,1,NULL,'2023-04-09 05:27:39.626',NULL,NULL,'2023-04-09 05:27:39.626',NULL);
557
562
 
558
563
  INSERT INTO ropidgtfs_stop_times_actual (trip_id,stop_sequence,arrival_time,arrival_time_seconds,departure_time,departure_time_seconds,drop_off_type,pickup_type,shape_dist_traveled,stop_headsign,stop_id,timepoint,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
559
- ('991_1_210419',1,'22:45:10',NULL,'22:45:10',NULL,'0','0',0.0,NULL,'U476Z102P',NULL,NULL,'2023-04-09 05:27:39.626',NULL,NULL,'2023-04-09 05:27:39.626',NULL),
560
- ('991_1_210419',2,'22:46:20',NULL,'22:46:50',NULL,'0','0',0.80665,NULL,'U400Z102P',NULL,NULL,'2023-04-09 05:27:39.626',NULL,NULL,'2023-04-09 05:27:39.626',NULL);
564
+ ('991_1_210419',1,'22:45:10',NULL,'22:45:10',NULL,'0','0',0.0,NULL,'U476Z102P',NULL,NULL,'2023-04-09 05:27:39.626',NULL,NULL,'2023-04-09 05:27:39.626',NULL),
565
+ ('991_1_210419',2,'22:46:20',NULL,'22:46:50',NULL,'0','0',0.80665,NULL,'U400Z102P',NULL,NULL,'2023-04-09 05:27:39.626',NULL,NULL,'2023-04-09 05:27:39.626',NULL);
561
566
 
562
567
  -- <<<
563
568
 
@@ -4,26 +4,35 @@ update vehiclepositions_trips set gtfs_date = start_timestamp::DATE;
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', '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');
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
+ (NULL, NULL, 65, NULL, '2023-03-21 00:00:15.565', 'L94', '94', '94_922_230320', '2023-03-21T01:30:00+01:00_94_922_230320_8229', '2023-03-21 02:44:26.122', NULL, NULL, '01:30:00', '2023-03-21T00:30:00.000Z', 6, false, NULL, NULL, NULL, NULL, 'DP PRAHA', '94', 'DP PRAHA', 8229, 'Sídliště Barrandov', NULL, 0, NULL, 554214347, NULL, '2023-03-21T01:40:00.000Z', NULL, NULL, 65, '94',current_date - interval '1 day');
8
9
 
9
10
  INSERT INTO vehiclepositions_positions
10
11
  (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
+ 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'),
13
+ ('2023-03-21 02:44:26.135', 20, NULL, NULL, 'U1019Z1P', 22.263, NULL, 50.03141, 14.36749, '02:44:23', '2023-03-21T01:44:23.000Z', true, '2023-03-21T01:30:00+01:00_94_922_230320_8229', NULL, NULL, NULL, '2023-03-21 02:44:25.822', NULL, 554214347, 257, NULL, NULL, 'U1019Z1P', 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', '10190001', 'processed', 'on_track', '10190001', NULL, 'V', NULL, 'Sídliště Barrandov', NULL, NULL, NULL, '2023-03-21T01:40:00.000Z');
12
14
 
13
15
  WITH init_values AS (SELECT NOW()::DATE AS now_date)
14
16
  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
15
- (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '7 days','YYYYMMDD'),1,1,1,'1111111-3',TO_CHAR((SELECT now_date FROM init_values)-INTERVAL '1 days','YYYYMMDD'),1,1,1,1,-1,'2022-10-24 10:18:51.362+02',NULL,-1,'2022-10-24 10:18:51.362+02',NULL);
17
+ (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '7 days','YYYYMMDD'),1,1,1,'1111111-3',TO_CHAR((SELECT now_date FROM init_values)-INTERVAL '1 days','YYYYMMDD'),1,1,1,1,-1,'2022-10-24 10:18:51.362+02',NULL,-1,'2022-10-24 10:18:51.362+02',NULL),
18
+ (TO_CHAR((SELECT now_date FROM init_values)+INTERVAL '7 days','YYYYMMDD'),1,1,1,'1111111-4',TO_CHAR((SELECT now_date FROM init_values)-INTERVAL '1 days','YYYYMMDD'),1,1,1,1,-1,'2022-10-24 10:18:51.362+02',NULL,-1,'2022-10-24 10:18:51.362+02',NULL);
16
19
 
17
20
  INSERT INTO ropidgtfs_stops_actual
18
21
  (location_type, parent_station, platform_code, stop_id, stop_lat, stop_lon, stop_name, stop_url, wheelchair_boarding, zone_id, create_batch_id, created_at, created_by, update_batch_id, updated_at, updated_by, level_id, stop_code, stop_desc, stop_timezone, asw_node_id, asw_stop_id)
19
- VALUES(0, NULL, 'A', 'U873Z1P', 50.110622, 14.508335, 'Poštovská', NULL, 1, 'P', NULL, '2023-03-21 05:47:11.042', NULL, NULL, '2023-03-21 05:47:11.042', NULL, NULL, NULL, NULL, NULL, 873, 1);
22
+ VALUES(0, NULL, 'A', 'U873Z1P', 50.110622, 14.508335, 'Poštovská', NULL, 1, 'P', NULL, '2023-03-21 05:47:11.042', NULL, NULL, '2023-03-21 05:47:11.042', NULL, NULL, NULL, NULL, NULL, 873, 1),
23
+ (0, NULL, 'B', 'U873Z2P', 50.110620, 14.508330, 'Poštovská', NULL, 1, 'P', NULL, '2023-03-21 05:47:11.042', NULL, NULL, '2023-03-21 05:47:11.042', NULL, NULL, NULL, NULL, NULL, 873, 2),
24
+ (0, NULL, 'B', 'U1019Z2P', 50.0314636, 14.3677835, 'Sídliště Barrandov', NULL, 1, 'P', NULL, '2023-03-21 05:47:11.042', NULL, NULL, '2023-03-21 05:47:11.042', NULL, NULL, NULL, NULL, NULL, 1019, 2),
25
+ (0, NULL, 'A', 'U1019Z1P', 50.0315, 14.3684816, 'Sídliště Barrandov', NULL, 1, 'P', NULL, '2023-03-21 05:47:11.042', NULL, NULL, '2023-03-21 05:47:11.042', NULL, NULL, NULL, NULL, NULL, 1019, 2);
20
26
 
21
27
  INSERT INTO ropidgtfs_stop_times_actual (arrival_time,arrival_time_seconds,departure_time,departure_time_seconds,drop_off_type,pickup_type,shape_dist_traveled,stop_headsign,stop_id,stop_sequence,timepoint,trip_id,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
22
- ('25:38:00',NULL,'25:38:00',NULL,'3','3',0.0,NULL,'U873Z1P',8,NULL,'94_979_230320',-1,'2022-10-24 10:21:13.104+02',NULL,-1,'2022-10-24 10:21:13.104+02',NULL),
23
- ('25:39:00',NULL,'25:39:00',NULL,'3','3',0.0,NULL,NULL,9,NULL,'94_979_230320',-1,'2022-10-24 10:21:13.104+02',NULL,-1,'2022-10-24 10:21:13.104+02',NULL);
28
+ ('25:38:00',NULL,'25:38:00',NULL,'3','3',0.0,NULL,'U873Z1P',8,NULL,'94_979_230320',-1,'2022-10-24 10:21:13.104+02',NULL,-1,'2022-10-24 10:21:13.104+02',NULL),
29
+ ('25:39:00',NULL,'25:39:00',NULL,'3','3',0.0,NULL,NULL,9,NULL,'94_979_230320',-1,'2022-10-24 10:21:13.104+02',NULL,-1,'2022-10-24 10:21:13.104+02',NULL),
30
+ ('25:39:00',NULL,'25:39:00',NULL,'3','3',0.0,NULL,'U873Z2P',8,NULL,'94_922_230320',-1,'2022-10-24 10:21:13.104+02',NULL,-1,'2022-10-24 10:21:13.104+02',NULL),
31
+ ('25:39:00',NULL,'25:39:00',NULL,'3','3',0.0,NULL,NULL,9,NULL,'94_922_230320',-1,'2022-10-24 10:21:13.104+02',NULL,-1,'2022-10-24 10:21:13.104+02',NULL);
24
32
 
25
33
  INSERT INTO ropidgtfs_routes_actual (agency_id,is_night,is_regional,is_substitute_transport,route_color,route_desc,route_id,route_long_name,route_short_name,route_text_color,route_type,route_url,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
26
- ('99','0','0','0','00A562',NULL,'L94','Dummy','94','FFFFFF','1','',-1,'2022-10-24 10:18:51.722+02',NULL,-1,'2022-10-24 10:18:51.722+02',NULL);
34
+ ('99','0','0','0','00A562',NULL,'L94','Dummy','94','FFFFFF','1','',-1,'2022-10-24 10:18:51.722+02',NULL,-1,'2022-10-24 10:18:51.722+02',NULL);
27
35
 
28
36
  INSERT INTO ropidgtfs_trips_actual (bikes_allowed,block_id,direction_id,exceptional,route_id,service_id,shape_id,trip_headsign,trip_id,trip_operation_type,trip_short_name,wheelchair_accessible,create_batch_id,created_at,created_by,update_batch_id,updated_at,updated_by) VALUES
29
- (1,NULL,1,0,'L94','1111111-3','L94VX','Sídliště Barrandov','94_979_230320',NULL,NULL,1,-1,'2022-10-24 10:22:47.459+02',NULL,-1,'2022-10-24 10:22:47.459+02',NULL);
37
+ (1,NULL,1,0,'L94','1111111-3','L94VX','Sídliště Barrandov','94_979_230320',NULL,NULL,1,-1,'2022-10-24 10:22:47.459+02',NULL,-1,'2022-10-24 10:22:47.459+02',NULL),
38
+ (1,NULL,1,0,'L94','1111111-4','L94VX','Sídliště Barrandov','94_922_230320',NULL,NULL,1,-1,'2022-10-24 10:22:47.459+02',NULL,-1,'2022-10-24 10:22:47.459+02',NULL);
@@ -9,6 +9,7 @@
9
9
  "stop_sequence": 1,
10
10
  "arrival_time_seconds": 60780,
11
11
  "departure_time_seconds": 60780,
12
+ "stop_icons": "Mb",
12
13
  "stop": {
13
14
  "stop_id": "U1040Z19P",
14
15
  "stop_lat": 50.068737,
@@ -27,6 +28,7 @@
27
28
  "stop_sequence": 2,
28
29
  "arrival_time_seconds": 60900,
29
30
  "departure_time_seconds": 60900,
31
+ "stop_icons": null,
30
32
  "stop": {
31
33
  "stop_id": "U638Z1P",
32
34
  "stop_lat": 50.066711,
@@ -45,6 +47,7 @@
45
47
  "stop_sequence": 3,
46
48
  "arrival_time_seconds": 61020,
47
49
  "departure_time_seconds": 61020,
50
+ "stop_icons": null,
48
51
  "stop": {
49
52
  "stop_id": "U835Z1P",
50
53
  "stop_lat": 50.065201,
@@ -63,6 +66,7 @@
63
66
  "stop_sequence": 4,
64
67
  "arrival_time_seconds": 61140,
65
68
  "departure_time_seconds": 61140,
69
+ "stop_icons": null,
66
70
  "stop": {
67
71
  "stop_id": "U363Z1P",
68
72
  "stop_lat": 50.064968,
@@ -81,6 +85,7 @@
81
85
  "stop_sequence": 5,
82
86
  "arrival_time_seconds": 61200,
83
87
  "departure_time_seconds": 61200,
88
+ "stop_icons": null,
84
89
  "stop": {
85
90
  "stop_id": "U815Z1P",
86
91
  "stop_lat": 50.062717,
@@ -99,6 +104,7 @@
99
104
  "stop_sequence": 6,
100
105
  "arrival_time_seconds": 61260,
101
106
  "departure_time_seconds": 61260,
107
+ "stop_icons": null,
102
108
  "stop": {
103
109
  "stop_id": "U116Z1P",
104
110
  "stop_lat": 50.060677,
@@ -117,6 +123,7 @@
117
123
  "stop_sequence": 7,
118
124
  "arrival_time_seconds": 61320,
119
125
  "departure_time_seconds": 61320,
126
+ "stop_icons": null,
120
127
  "stop": {
121
128
  "stop_id": "U396Z3P",
122
129
  "stop_lat": 50.058533,
@@ -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', '20251229142106-use-gtfs-icons-in-transferboards-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', '20251229142106-use-gtfs-icons-in-transferboards-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,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', '20260119180905-add-precomputed-trip-connections-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', '20260119180905-add-precomputed-trip-connections-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 @@
1
+ ALTER TABLE ropidgtfs_precomputed_departures DROP COLUMN trip_headsign_icons;
@@ -0,0 +1 @@
1
+ ALTER TABLE ropidgtfs_precomputed_departures ADD COLUMN trip_headsign_icons TEXT;
@@ -0,0 +1,72 @@
1
+ ALTER TABLE ropidgtfs_precomputed_departures DROP COLUMN trip_connections;
2
+
3
+ -- Update procedures for working with tmp tables
4
+
5
+ CREATE OR REPLACE PROCEDURE ropidgtfs_cleanoldtables()
6
+ LANGUAGE plpgsql
7
+ SET search_path from CURRENT
8
+ AS $procedure$
9
+ begin
10
+ drop table if exists "ropidgtfs_agency_old";
11
+ drop table if exists "ropidgtfs_calendar_old";
12
+ drop table if exists "ropidgtfs_calendar_dates_old";
13
+ drop table if exists "ropidgtfs_shapes_old";
14
+ drop table if exists "ropidgtfs_stop_times_old";
15
+ drop table if exists "ropidgtfs_stops_old";
16
+ drop table if exists "ropidgtfs_routes_old";
17
+ drop table if exists "ropidgtfs_route_sub_agencies_old";
18
+ drop table if exists "ropidgtfs_transfers_old";
19
+ drop table if exists "ropidgtfs_trips_old";
20
+ drop table if exists "ropidgtfs_cis_stops_old";
21
+ drop table if exists "ropidgtfs_cis_stop_groups_old";
22
+ drop table if exists "ropidgtfs_run_numbers_old";
23
+ drop table if exists "ropidgtfs_ois_old";
24
+ drop table if exists "ropidgtfs_precomputed_services_calendar_old";
25
+ drop table if exists "ropidgtfs_precomputed_minmax_stop_sequences_old";
26
+ drop table if exists "ropidgtfs_precomputed_trip_schedule_old";
27
+ end
28
+ $procedure$
29
+ ;
30
+
31
+ CREATE OR REPLACE PROCEDURE ropidgtfs_cleantmptables()
32
+ LANGUAGE plpgsql
33
+ SET search_path from CURRENT
34
+ AS $procedure$
35
+ begin
36
+ drop table if exists "ropidgtfs_agency_tmp";
37
+ drop table if exists "ropidgtfs_calendar_tmp";
38
+ drop table if exists "ropidgtfs_calendar_dates_tmp";
39
+ drop table if exists "ropidgtfs_shapes_tmp";
40
+ drop table if exists "ropidgtfs_stop_times_tmp";
41
+ drop table if exists "ropidgtfs_stops_tmp";
42
+ drop table if exists "ropidgtfs_routes_tmp";
43
+ drop table if exists "ropidgtfs_route_sub_agencies_tmp";
44
+ drop table if exists "ropidgtfs_transfers_tmp";
45
+ drop table if exists "ropidgtfs_trips_tmp";
46
+ drop table if exists "ropidgtfs_cis_stops_tmp";
47
+ drop table if exists "ropidgtfs_cis_stop_groups_tmp";
48
+ drop table if exists "ropidgtfs_run_numbers_tmp";
49
+ drop table if exists "ropidgtfs_ois_tmp";
50
+ drop table if exists "ropidgtfs_precomputed_services_calendar_tmp";
51
+ drop table if exists "ropidgtfs_precomputed_minmax_stop_sequences_tmp";
52
+ drop table if exists "ropidgtfs_precomputed_trip_schedule_tmp";
53
+ end
54
+ $procedure$
55
+ ;
56
+
57
+ CREATE OR REPLACE PROCEDURE ropidgtfs_preparePrecomputedTmpTables()
58
+ LANGUAGE plpgsql
59
+ SET search_path FROM CURRENT
60
+ AS $procedure$
61
+ begin
62
+ create table "ropidgtfs_precomputed_services_calendar_tmp" (like "ropidgtfs_precomputed_services_calendar" including all);
63
+ create table "ropidgtfs_precomputed_minmax_stop_sequences_tmp" (like "ropidgtfs_precomputed_minmax_stop_sequences" including all);
64
+ create table "ropidgtfs_precomputed_trip_schedule_tmp" (like "ropidgtfs_precomputed_trip_schedule" including all);
65
+ end
66
+ $procedure$;
67
+
68
+ -- Drop created tables (along with their constraints and indexes)
69
+
70
+ DROP TABLE IF EXISTS ropidgtfs_precomputed_trip_connections_actual;
71
+ DROP TABLE IF EXISTS ropidgtfs_precomputed_trip_connections_tmp;
72
+ DROP TABLE IF EXISTS ropidgtfs_precomputed_trip_connections;
@@ -0,0 +1,91 @@
1
+ ALTER TABLE ropidgtfs_precomputed_departures ADD COLUMN trip_connections JSONB NULL;
2
+
3
+ -- Create parent table for precomputed trip connection at one stop with indexes
4
+
5
+ CREATE TABLE ropidgtfs_precomputed_trip_connections (
6
+ to_stop_id varchar(255) NOT NULL,
7
+ to_trip_id varchar(255) NOT NULL,
8
+ connections jsonb NOT NULL,
9
+ CONSTRAINT ropidgtfs_precomputed_trip_connections_pk PRIMARY KEY (to_stop_id, to_trip_id)
10
+ );
11
+
12
+ CREATE INDEX ropidgtfs_precomputed_trip_connections_to_stop_id_idx ON ropidgtfs_precomputed_trip_connections USING btree (to_stop_id);
13
+ CREATE INDEX ropidgtfs_precomputed_trip_connections_to_trip_id_idx ON ropidgtfs_precomputed_trip_connections USING btree (to_trip_id);
14
+
15
+ -- Create child (actual) table for precomputed stop/trip connections
16
+
17
+ CREATE TABLE ropidgtfs_precomputed_trip_connections_actual (
18
+ LIKE ropidgtfs_precomputed_trip_connections INCLUDING ALL
19
+ ) INHERITS (ropidgtfs_precomputed_trip_connections);
20
+
21
+ -- Update procedures for working with tmp tables
22
+
23
+ CREATE OR REPLACE PROCEDURE ropidgtfs_preparePrecomputedTmpTables()
24
+ LANGUAGE plpgsql
25
+ SET search_path FROM CURRENT
26
+ AS $procedure$
27
+ begin
28
+ create table "ropidgtfs_precomputed_services_calendar_tmp" (like "ropidgtfs_precomputed_services_calendar" including all);
29
+ create table "ropidgtfs_precomputed_minmax_stop_sequences_tmp" (like "ropidgtfs_precomputed_minmax_stop_sequences" including all);
30
+ create table "ropidgtfs_precomputed_trip_schedule_tmp" (like "ropidgtfs_precomputed_trip_schedule" including all);
31
+ create table "ropidgtfs_precomputed_trip_connections_tmp" (like "ropidgtfs_precomputed_trip_connections" including all);
32
+ end
33
+ $procedure$;
34
+
35
+ -- Update procedures for working with old tables
36
+
37
+ CREATE OR REPLACE PROCEDURE ropidgtfs_cleanoldtables()
38
+ LANGUAGE plpgsql
39
+ SET search_path from CURRENT
40
+ AS $procedure$
41
+ begin
42
+ drop table if exists "ropidgtfs_agency_old";
43
+ drop table if exists "ropidgtfs_calendar_old";
44
+ drop table if exists "ropidgtfs_calendar_dates_old";
45
+ drop table if exists "ropidgtfs_shapes_old";
46
+ drop table if exists "ropidgtfs_stop_times_old";
47
+ drop table if exists "ropidgtfs_stops_old";
48
+ drop table if exists "ropidgtfs_routes_old";
49
+ drop table if exists "ropidgtfs_route_sub_agencies_old";
50
+ drop table if exists "ropidgtfs_transfers_old";
51
+ drop table if exists "ropidgtfs_trips_old";
52
+ drop table if exists "ropidgtfs_cis_stops_old";
53
+ drop table if exists "ropidgtfs_cis_stop_groups_old";
54
+ drop table if exists "ropidgtfs_run_numbers_old";
55
+ drop table if exists "ropidgtfs_ois_old";
56
+ drop table if exists "ropidgtfs_precomputed_services_calendar_old";
57
+ drop table if exists "ropidgtfs_precomputed_minmax_stop_sequences_old";
58
+ drop table if exists "ropidgtfs_precomputed_trip_connections_old";
59
+ drop table if exists "ropidgtfs_precomputed_trip_schedule_old";
60
+ end
61
+ $procedure$
62
+ ;
63
+
64
+ -- Update procedures for working with tmp tables
65
+
66
+ CREATE OR REPLACE PROCEDURE ropidgtfs_cleantmptables()
67
+ LANGUAGE plpgsql
68
+ SET search_path from CURRENT
69
+ AS $procedure$
70
+ begin
71
+ drop table if exists "ropidgtfs_agency_tmp";
72
+ drop table if exists "ropidgtfs_calendar_tmp";
73
+ drop table if exists "ropidgtfs_calendar_dates_tmp";
74
+ drop table if exists "ropidgtfs_shapes_tmp";
75
+ drop table if exists "ropidgtfs_stop_times_tmp";
76
+ drop table if exists "ropidgtfs_stops_tmp";
77
+ drop table if exists "ropidgtfs_routes_tmp";
78
+ drop table if exists "ropidgtfs_route_sub_agencies_tmp";
79
+ drop table if exists "ropidgtfs_transfers_tmp";
80
+ drop table if exists "ropidgtfs_trips_tmp";
81
+ drop table if exists "ropidgtfs_cis_stops_tmp";
82
+ drop table if exists "ropidgtfs_cis_stop_groups_tmp";
83
+ drop table if exists "ropidgtfs_run_numbers_tmp";
84
+ drop table if exists "ropidgtfs_ois_tmp";
85
+ drop table if exists "ropidgtfs_precomputed_services_calendar_tmp";
86
+ drop table if exists "ropidgtfs_precomputed_minmax_stop_sequences_tmp";
87
+ drop table if exists "ropidgtfs_precomputed_trip_connections_tmp";
88
+ drop table if exists "ropidgtfs_precomputed_trip_schedule_tmp";
89
+ end
90
+ $procedure$
91
+ ;
@@ -21,6 +21,7 @@ export declare class RopidGTFSStopTimesModel extends PostgresModel implements IM
21
21
  protected validator: IValidator;
22
22
  /** Type/Strategy of saving the data */
23
23
  protected savingType: "insertOnly" | "insertOrUpdate";
24
+ private modelGTFSStops;
24
25
  constructor();
25
26
  findTripStops: (tripIds: string[]) => Promise<ITripStopsResult[]>;
26
27
  }
@@ -12,6 +12,7 @@ const connectors_1 = require("@golemio/core/dist/integration-engine/connectors")
12
12
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
13
13
  const golemio_validator_1 = require("@golemio/core/dist/shared/golemio-validator");
14
14
  const sequelize_1 = __importDefault(require("@golemio/core/dist/shared/sequelize"));
15
+ const RopidGTFSStopsModel_1 = require("./RopidGTFSStopsModel");
15
16
  class RopidGTFSStopTimesModel extends integration_engine_1.PostgresModel {
16
17
  constructor() {
17
18
  super(ropid_gtfs_1.RopidGTFS.stop_times.name + "Model", {
@@ -39,6 +40,13 @@ class RopidGTFSStopTimesModel extends integration_engine_1.PostgresModel {
39
40
  throw new golemio_errors_1.GeneralError("Cannot find trip stops", this.name, err);
40
41
  }
41
42
  };
43
+ this.modelGTFSStops = new RopidGTFSStopsModel_1.RopidGTFSStopsModel();
44
+ this.sequelizeModel.hasOne(this.modelGTFSStops.sequelizeModel, {
45
+ as: "stop",
46
+ foreignKey: "stop_id",
47
+ sourceKey: "stop_id",
48
+ constraints: false,
49
+ });
42
50
  }
43
51
  }
44
52
  exports.RopidGTFSStopTimesModel = RopidGTFSStopTimesModel;
@@ -1 +1 @@
1
- {"version":3,"file":"RopidGTFSStopTimesModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAuC;AACvC,oEAA4C;AAC5C,0FAAmE;AACnE,8EAA8E;AAC9E,iFAAqF;AACrF,6EAAwE;AACxE,mFAA8F;AAC9F,oFAA4D;AAa5D,MAAa,uBAAwB,SAAQ,kCAAa;IAYtD;QACI,KAAK,CACD,sBAAS,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,EACnC;YACI,yBAAyB,EAAE,sBAAS,CAAC,UAAU,CAAC,yBAAyB;YACzE,WAAW,EAAE,sBAAS,CAAC,UAAU,CAAC,WAAW;YAC7C,QAAQ,EAAE,iBAAS;YACnB,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAS,CAAC,UAAU,CAAC,IAAI,GAAG,gBAAgB,EAAE,2BAAY,CAAC,UAAU,CAAC,CACjG,CAAC;QAGC,kBAAa,GAAG,KAAK,EAAE,OAAiB,EAA+B,EAAE;YAC5E,MAAM,UAAU,GAAG,8BAAiB,CAAC,aAAa,EAAE,CAAC;YACrD,IAAI,CAAC;gBACD,OAAO,MAAM,UAAU,CAAC,KAAK,CACzB;;;;;2BAKW,iBAAS,KAAK,IAAI,CAAC,SAAS;gCACvB,iBAAS,KAAK,sBAAS,CAAC,SAAS,CAAC,WAAW;;2CAElC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;iBAE/E,EACD,EAAE,IAAI,EAAE,mBAAS,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CACnD,CAAC;YACN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,IAAI,6BAAY,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrE,CAAC;QACL,CAAC,CAAC;IAtBF,CAAC;CAuBJ;AA9CD,0DA8CC"}
1
+ {"version":3,"file":"RopidGTFSStopTimesModel.js","sourceRoot":"","sources":["../../../src/integration-engine/ropid-gtfs/RopidGTFSStopTimesModel.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAuC;AACvC,oEAA4C;AAC5C,0FAAmE;AACnE,8EAA8E;AAC9E,iFAAqF;AACrF,6EAAwE;AACxE,mFAA8F;AAC9F,oFAA4D;AAC5D,+DAA4D;AAa5D,MAAa,uBAAwB,SAAQ,kCAAa;IActD;QACI,KAAK,CACD,sBAAS,CAAC,UAAU,CAAC,IAAI,GAAG,OAAO,EACnC;YACI,yBAAyB,EAAE,sBAAS,CAAC,UAAU,CAAC,yBAAyB;YACzE,WAAW,EAAE,sBAAS,CAAC,UAAU,CAAC,WAAW;YAC7C,QAAQ,EAAE,iBAAS;YACnB,UAAU,EAAE,YAAY;SAC3B,EACD,IAAI,uCAAmB,CAAC,sBAAS,CAAC,UAAU,CAAC,IAAI,GAAG,gBAAgB,EAAE,2BAAY,CAAC,UAAU,CAAC,CACjG,CAAC;QAWC,kBAAa,GAAG,KAAK,EAAE,OAAiB,EAA+B,EAAE;YAC5E,MAAM,UAAU,GAAG,8BAAiB,CAAC,aAAa,EAAE,CAAC;YACrD,IAAI,CAAC;gBACD,OAAO,MAAM,UAAU,CAAC,KAAK,CACzB;;;;;2BAKW,iBAAS,KAAK,IAAI,CAAC,SAAS;gCACvB,iBAAS,KAAK,sBAAS,CAAC,SAAS,CAAC,WAAW;;2CAElC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;;iBAE/E,EACD,EAAE,IAAI,EAAE,mBAAS,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CACnD,CAAC;YACN,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACX,MAAM,IAAI,6BAAY,CAAC,wBAAwB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrE,CAAC;QACL,CAAC,CAAC;QA7BE,IAAI,CAAC,cAAc,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE;YAC3D,EAAE,EAAE,MAAM;YACV,UAAU,EAAE,SAAS;YACrB,SAAS,EAAE,SAAS;YACpB,WAAW,EAAE,KAAK;SACrB,CAAC,CAAC;IACP,CAAC;CAuBJ;AAxDD,0DAwDC"}