@golemio/pid 6.0.3-dev.2954837172 → 6.1.0-rc.2962399658

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 (116) hide show
  1. package/db/example/00_clear_test_data.sql +6 -0
  2. package/db/example/03_ropidgtfs_dump.sql +0 -5
  3. package/db/example/04_ropidvymi_example.sql +40 -0
  4. package/db/example/07_tmp_example.sql +4 -0
  5. package/db/example/19_train_trip_with_cis_platform_code.sql +1 -2
  6. package/dist/integration-engine/index.d.ts +1 -0
  7. package/dist/integration-engine/index.js +5 -0
  8. package/dist/integration-engine/index.js.map +1 -1
  9. package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.d.ts +21 -0
  10. package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.js +81 -0
  11. package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.js.map +1 -0
  12. package/dist/integration-engine/ropid-vymi/index.d.ts +2 -0
  13. package/dist/integration-engine/ropid-vymi/index.js +3 -0
  14. package/dist/integration-engine/ropid-vymi/index.js.map +1 -0
  15. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.d.ts +9 -0
  16. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.js +37 -0
  17. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.js.map +1 -0
  18. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.d.ts +9 -0
  19. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js +29 -0
  20. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js.map +1 -0
  21. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.d.ts +7 -0
  22. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.js +21 -0
  23. package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.js.map +1 -0
  24. package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.d.ts +8 -0
  25. package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.js +30 -0
  26. package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.js.map +1 -0
  27. package/dist/integration-engine/ropid-vymi/models/index.d.ts +4 -0
  28. package/dist/integration-engine/ropid-vymi/models/index.js +5 -0
  29. package/dist/integration-engine/ropid-vymi/models/index.js.map +1 -0
  30. package/dist/integration-engine/ropid-vymi/workers/RopidVYMIWorker.d.ts +5 -0
  31. package/dist/integration-engine/ropid-vymi/workers/RopidVYMIWorker.js +14 -0
  32. package/dist/integration-engine/ropid-vymi/workers/RopidVYMIWorker.js.map +1 -0
  33. package/dist/integration-engine/ropid-vymi/workers/tasks/CheckForNewEventsTask.d.ts +8 -0
  34. package/dist/integration-engine/ropid-vymi/workers/tasks/CheckForNewEventsTask.js +19 -0
  35. package/dist/integration-engine/ropid-vymi/workers/tasks/CheckForNewEventsTask.js.map +1 -0
  36. package/dist/integration-engine/ropid-vymi/workers/tasks/FetchAndProcessEventsTask.d.ts +17 -0
  37. package/dist/integration-engine/ropid-vymi/workers/tasks/FetchAndProcessEventsTask.js +94 -0
  38. package/dist/integration-engine/ropid-vymi/workers/tasks/FetchAndProcessEventsTask.js.map +1 -0
  39. package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiHelper.d.ts +11 -0
  40. package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiHelper.js +72 -0
  41. package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiHelper.js.map +1 -0
  42. package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiOutputLevel.d.ts +5 -0
  43. package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiOutputLevel.js +7 -0
  44. package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiOutputLevel.js.map +1 -0
  45. package/dist/integration-engine/ropid-vymi/workers/tasks/interfaces/IEventFetchOutput.d.ts +5 -0
  46. package/dist/integration-engine/ropid-vymi/workers/tasks/interfaces/IEventFetchOutput.js +2 -0
  47. package/dist/integration-engine/ropid-vymi/workers/tasks/interfaces/IEventFetchOutput.js.map +1 -0
  48. package/dist/integration-engine/ropid-vymi/workers/tasks/schema/EventFetchOutputValidationSchema.d.ts +6 -0
  49. package/dist/integration-engine/ropid-vymi/workers/tasks/schema/EventFetchOutputValidationSchema.js +27 -0
  50. package/dist/integration-engine/ropid-vymi/workers/tasks/schema/EventFetchOutputValidationSchema.js.map +1 -0
  51. package/dist/integration-engine/ropid-vymi/workers/tasks/schema/RopidVYMIEventValidationSchema.d.ts +47 -0
  52. package/dist/integration-engine/ropid-vymi/workers/tasks/schema/RopidVYMIEventValidationSchema.js +200 -0
  53. package/dist/integration-engine/ropid-vymi/workers/tasks/schema/RopidVYMIEventValidationSchema.js.map +1 -0
  54. package/dist/integration-engine/shared/RopidMetadataModel.d.ts +2 -1
  55. package/dist/integration-engine/shared/RopidMetadataModel.js +1 -0
  56. package/dist/integration-engine/shared/RopidMetadataModel.js.map +1 -1
  57. package/dist/integration-engine/vehicle-positions/ioc/Di.js +2 -2
  58. package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
  59. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +1 -1
  60. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +1 -1
  61. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  62. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertCauseMapper.d.ts +2 -0
  63. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertCauseMapper.js +51 -0
  64. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertCauseMapper.js.map +1 -0
  65. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertEffectMapper.d.ts +6 -0
  66. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertEffectMapper.js +93 -0
  67. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertEffectMapper.js.map +1 -0
  68. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertsGenerator.d.ts +4 -1
  69. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertsGenerator.js +11 -3
  70. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertsGenerator.js.map +1 -1
  71. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +4 -1
  72. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
  73. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/transformations/AlertsTransformation.d.ts +14 -0
  74. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/transformations/AlertsTransformation.js +82 -0
  75. package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/transformations/AlertsTransformation.js.map +1 -0
  76. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.d.ts +3 -8
  77. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js +31 -41
  78. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js.map +1 -1
  79. package/dist/schema-definitions/index.d.ts +1 -0
  80. package/dist/schema-definitions/index.js +1 -0
  81. package/dist/schema-definitions/index.js.map +1 -1
  82. package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.d.ts +151 -0
  83. package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.js +152 -0
  84. package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.js.map +1 -0
  85. package/dist/schema-definitions/ropid-vymi/RopidVYMISDMA.d.ts +58 -0
  86. package/dist/schema-definitions/ropid-vymi/RopidVYMISDMA.js +74 -0
  87. package/dist/schema-definitions/ropid-vymi/RopidVYMISDMA.js.map +1 -0
  88. package/dist/schema-definitions/ropid-vymi/index.d.ts +52 -0
  89. package/dist/schema-definitions/ropid-vymi/index.js +171 -0
  90. package/dist/schema-definitions/ropid-vymi/index.js.map +1 -0
  91. package/dist/schema-definitions/vehicle-positions/models/views/index.d.ts +0 -1
  92. package/dist/schema-definitions/vehicle-positions/models/views/index.js +0 -1
  93. package/dist/schema-definitions/vehicle-positions/models/views/index.js.map +1 -1
  94. package/docs/assets/pid_vymi_erd.png +0 -0
  95. package/docs/cache/types/redis.md +2 -2
  96. package/docs/implementation_documentation.md +62 -3
  97. package/docs/processing/input_realtime_data/http_mpvnet.md +0 -8
  98. package/package.json +6 -6
  99. package/db/migrations/postgresql/20261009120000-case-insensitive-assigned-stop-id.js +0 -16
  100. package/db/migrations/postgresql/20261012120000-cis-stop-platforms-view.js +0 -16
  101. package/db/migrations/postgresql/20261013120000-drop-ropidvymi-tables.js +0 -16
  102. package/db/migrations/postgresql/sqls/20261009120000-case-insensitive-assigned-stop-id-down.sql +0 -65
  103. package/db/migrations/postgresql/sqls/20261009120000-case-insensitive-assigned-stop-id-up.sql +0 -66
  104. package/db/migrations/postgresql/sqls/20261012120000-cis-stop-platforms-view-down.sql +0 -5
  105. package/db/migrations/postgresql/sqls/20261012120000-cis-stop-platforms-view-up.sql +0 -33
  106. package/db/migrations/postgresql/sqls/20261013120000-drop-ropidvymi-tables-down.sql +0 -119
  107. package/db/migrations/postgresql/sqls/20261013120000-drop-ropidvymi-tables-up.sql +0 -7
  108. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/views/CisStopPlatformRepository.d.ts +0 -12
  109. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/views/CisStopPlatformRepository.js +0 -47
  110. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/views/CisStopPlatformRepository.js.map +0 -1
  111. package/dist/schema-definitions/vehicle-positions/models/views/CisStopPlatformModel.d.ts +0 -17
  112. package/dist/schema-definitions/vehicle-positions/models/views/CisStopPlatformModel.js +0 -22
  113. package/dist/schema-definitions/vehicle-positions/models/views/CisStopPlatformModel.js.map +0 -1
  114. package/dist/schema-definitions/vehicle-positions/models/views/interfaces/ICisStopPlatformDto.d.ts +0 -6
  115. package/dist/schema-definitions/vehicle-positions/models/views/interfaces/ICisStopPlatformDto.js +0 -2
  116. package/dist/schema-definitions/vehicle-positions/models/views/interfaces/ICisStopPlatformDto.js.map +0 -1
@@ -0,0 +1,52 @@
1
+ import { type IRopidSchemaDefinitions } from "#sch/shared/index";
2
+ import "@golemio/core/dist/shared/sequelize.js";
3
+ import { type IRopidVYMIEventOutput, type IRopidVYMIEventRouteOutput, type IRopidVYMIEventStopOutput } from "./RopidVYMISDMA.js";
4
+ interface IRopidVYMIEvent {
5
+ "@id": string;
6
+ "@id_dtb": string;
7
+ "@stav": string;
8
+ "@pa_01": string;
9
+ "@pa_02": string;
10
+ "@pa_03": string;
11
+ "@pa_04": string;
12
+ "@typ_zaznamu": string;
13
+ "@typ_udalost"?: string;
14
+ "@kanaly": string;
15
+ "@nazev": string;
16
+ "@cas_od": string;
17
+ "@typ_do": string;
18
+ "@cas_do"?: string;
19
+ "@zobrazit_do"?: string;
20
+ "@druh_dopr": string;
21
+ "@priorita"?: string;
22
+ "@duvod"?: string;
23
+ "@link"?: string;
24
+ "@opatr_ropid"?: string;
25
+ "@opatr_dpp"?: string;
26
+ "@popis"?: string;
27
+ "linky-zmena"?: IRopidVYMIEventRoute[];
28
+ "zastavky-zmena"?: IRopidVYMIEventStop[];
29
+ }
30
+ interface IRopidVYMIEventRoute {
31
+ "@id": string;
32
+ "@id_dtb": string;
33
+ "@cislo": string;
34
+ "@nazev": string;
35
+ "@linka_typ": string;
36
+ "@plati_od"?: string;
37
+ "@plati_do"?: string;
38
+ "#text"?: string;
39
+ }
40
+ interface IRopidVYMIEventStop {
41
+ "@id": string;
42
+ "@id_dtb": string;
43
+ "@uzelCislo": string;
44
+ "@zastCislo": string;
45
+ "@zast_typ": string;
46
+ "@plati_od"?: string;
47
+ "@plati_do"?: string;
48
+ "#text"?: string;
49
+ }
50
+ declare const forExport: IRopidSchemaDefinitions;
51
+ export { forExport as RopidVYMI };
52
+ export type { IRopidVYMIEvent, IRopidVYMIEventOutput, IRopidVYMIEventRoute, IRopidVYMIEventRouteOutput, IRopidVYMIEventStop, IRopidVYMIEventStopOutput, };
@@ -0,0 +1,171 @@
1
+ import "@golemio/core/dist/shared/sequelize.js";
2
+ import { outputEventsJsonSchema, outputEventsRoutesJsonSchema, outputEventsStopsJsonSchema } from "./RopidVYMIOutputSchemas.js";
3
+ import { outputEventsRoutesSDMA, outputEventsSDMA, outputEventsStopsSDMA, } from "./RopidVYMISDMA.js";
4
+ const datasourceJsonSchema = {
5
+ type: "array",
6
+ items: {
7
+ type: "object",
8
+ properties: {
9
+ "@id": {
10
+ type: "string",
11
+ },
12
+ "@id_dtb": {
13
+ type: "string",
14
+ },
15
+ "@stav": {
16
+ type: "string",
17
+ },
18
+ "@pa_01": {
19
+ type: "string",
20
+ },
21
+ "@pa_02": {
22
+ type: "string",
23
+ },
24
+ "@pa_03": {
25
+ type: "string",
26
+ },
27
+ "@pa_04": {
28
+ type: "string",
29
+ },
30
+ "@typ_zaznamu": {
31
+ type: "string",
32
+ },
33
+ "@typ_udalost": {
34
+ type: ["null", "string"],
35
+ },
36
+ "@kanaly": {
37
+ type: "string",
38
+ },
39
+ "@nazev": {
40
+ type: "string",
41
+ },
42
+ "@cas_od": {
43
+ type: "string",
44
+ },
45
+ "@typ_do": {
46
+ type: "string",
47
+ },
48
+ "@cas_do": {
49
+ type: ["null", "string"],
50
+ },
51
+ "@zobrazit_do": {
52
+ type: ["null", "string"],
53
+ },
54
+ "@druh_dopr": {
55
+ type: "string",
56
+ },
57
+ "@priorita": {
58
+ type: ["null", "string"],
59
+ },
60
+ "@duvod": {
61
+ type: ["null", "string"],
62
+ },
63
+ "@link": {
64
+ type: ["null", "string"],
65
+ },
66
+ "@opatr_ropid": {
67
+ type: ["null", "string"],
68
+ },
69
+ "@opatr_dpp": {
70
+ type: ["null", "string"],
71
+ },
72
+ "@popis": {
73
+ type: ["null", "string"],
74
+ },
75
+ "linky-zmena": {
76
+ type: "array",
77
+ items: {
78
+ type: "object",
79
+ properties: {
80
+ "@id": {
81
+ type: "string",
82
+ },
83
+ "@id_dtb": {
84
+ type: "string",
85
+ },
86
+ "@cislo": {
87
+ type: "string",
88
+ },
89
+ "@nazev": {
90
+ type: "string",
91
+ },
92
+ "@linka_typ": {
93
+ type: "string",
94
+ },
95
+ "@plati_od": {
96
+ type: ["null", "string"],
97
+ },
98
+ "@plati_do": {
99
+ type: ["null", "string"],
100
+ },
101
+ "#text": {
102
+ type: ["null", "string"],
103
+ },
104
+ },
105
+ },
106
+ },
107
+ "zastavky-zmena": {
108
+ type: "array",
109
+ items: {
110
+ type: "object",
111
+ properties: {
112
+ "@id": {
113
+ type: "string",
114
+ },
115
+ "@id_dtb": {
116
+ type: "string",
117
+ },
118
+ "@uzelCislo": {
119
+ type: "string",
120
+ },
121
+ "@zastCislo": {
122
+ type: "string",
123
+ },
124
+ "@zast_typ": {
125
+ type: "string",
126
+ },
127
+ "@plati_od": {
128
+ type: ["null", "string"],
129
+ },
130
+ "@plati_do": {
131
+ type: ["null", "string"],
132
+ },
133
+ "#text": {
134
+ type: ["null", "string"],
135
+ },
136
+ },
137
+ },
138
+ },
139
+ },
140
+ },
141
+ };
142
+ const forExport = {
143
+ name: "RopidVYMI",
144
+ events: {
145
+ name: "RopidVYMIEvents",
146
+ datasourceJsonSchema,
147
+ outputJsonSchema: outputEventsJsonSchema,
148
+ outputSequelizeAttributes: outputEventsSDMA,
149
+ pgTableName: "ropidvymi_events",
150
+ },
151
+ eventsRoutes: {
152
+ name: "RopidVYMIEventsRoutes",
153
+ datasourceJsonSchema,
154
+ outputJsonSchema: outputEventsRoutesJsonSchema,
155
+ outputSequelizeAttributes: outputEventsRoutesSDMA,
156
+ pgTableName: "ropidvymi_events_routes",
157
+ },
158
+ eventsStops: {
159
+ name: "RopidVYMIEventsStops",
160
+ datasourceJsonSchema,
161
+ outputJsonSchema: outputEventsStopsJsonSchema,
162
+ outputSequelizeAttributes: outputEventsStopsSDMA,
163
+ pgTableName: "ropidvymi_events_stops",
164
+ },
165
+ metadata: {
166
+ name: "RopidVYMIMetadata",
167
+ pgTableName: "ropidvymi_metadata",
168
+ },
169
+ };
170
+ export { forExport as RopidVYMI };
171
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema-definitions/ropid-vymi/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
1
  export * from "./TripWithLastPositionModel.js";
2
2
  export * from "./ProcessedPositionModel.js";
3
3
  export * from "./PublicStopTimeModel.js";
4
- export * from "./CisStopPlatformModel.js";
@@ -1,5 +1,4 @@
1
1
  export * from "./TripWithLastPositionModel.js";
2
2
  export * from "./ProcessedPositionModel.js";
3
3
  export * from "./PublicStopTimeModel.js";
4
- export * from "./CisStopPlatformModel.js";
5
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/vehicle-positions/models/views/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/vehicle-positions/models/views/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC"}
Binary file
@@ -70,7 +70,7 @@ flowchart TD;
70
70
  flowchart TD;
71
71
  redis_f_1[("Redis files:gtfsRt")];
72
72
  redis_t_1[("Redis files:gtfsRt_*_timestamp")];
73
- psql[("PSQL vehiclepositions_*, jis_*")];
73
+ psql[("PSQL vehiclepositions_*, ropidvymi_*")];
74
74
 
75
75
  connector[("OG Redis connector")];
76
76
  repository["IE GtfsRtRedisRepository"];
@@ -288,7 +288,7 @@ flowchart TD
288
288
  - `platform_code` - označení zastávky podle GTFS
289
289
  - `stop_id` - GTFS id zastávky
290
290
  - `stop_name` - název zastávky
291
- - `assigned_stop_id` - GTFS `stop_id` konkrétního nástupištního záznamu (pro vlaky, kde se podařilo spárovat CIS `cis_stop_platform_code` s nástupištní zastávkou v GTFS); `null` pokud k přiřazení nedošlo nebo nejde o vlak; zdroj: pohled `v_public_vehiclepositions_combined_stop_times` (self-join na `ropidgtfs_stops` přes `parent_station` + `upper(platform_code) = upper(cis_stop_platform_code)`, `location_type = 0`)
291
+ - `assigned_stop_id` - GTFS `stop_id` konkrétního nástupištního záznamu (pro vlaky, kde se podařilo spárovat CIS `cis_stop_platform_code` s nástupištní zastávkou v GTFS); `null` pokud k přiřazení nedošlo nebo nejde o vlak; zdroj: pohled `v_public_vehiclepositions_combined_stop_times` (self-join na `ropidgtfs_stops` přes `parent_station` + `platform_code = cis_stop_platform_code`, `location_type = 0`)
292
292
  - TTL 1 hodina a 5 minut
293
293
  - Automatické promazání dat po úspěšném načtení GTFS jíždních řádů
294
294
  - Cca jednou za 5 vteřin se přenačtou stop times pro všechny aktivní spoje. Generování může běžet pouze jednou, po dokončení tasku se spustí znovu (max čekání 4.8 vteřin)
@@ -16,6 +16,7 @@ Modul slouží k ukládání a poskytování informací o jízdních řádech a
16
16
  - OIS (Odbavovací a informační systém) mapovací číselník pro tramvaje
17
17
  - Oběhy vozidel
18
18
  - Presets (definice pro zkracovač URL)
19
+ - ROPID VYMI (Výluky a mimořádnosti)
19
20
  - Seznam Autobusu API (informace o vozidlech, např. dostupnost klimatizace nebo USB zásuvek)
20
21
  - Statická data
21
22
  - Ukazatelé směru jízdy
@@ -147,6 +148,24 @@ _:warning: Původním záměrem bylo využití OIS číselníku během zpracová
147
148
  - vehicle-positions.ropidpresets.checkForNewDeparturesPresets
148
149
  - vehicle-positions.ropidpresets.downloadDeparturesPresets
149
150
 
151
+ #### _VYMI výluky a mimořádnosti_
152
+
153
+ - zdroj dat
154
+ - url: https://vymipid.ropid.cz/ws/list_publ (config.datasources.RopidVYMIApiUrl)
155
+ - parametry dotazu: config.datasources.RopidVYMIApiHeaders
156
+ - formát dat
157
+ - protokol: http
158
+ - datový typ: json
159
+ - validační schéma: [datasourceJsonSchema](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/schema-definitions/ropid-vymi/index.ts#L62)
160
+ - příklad vstupnich dat: [ropidvymi-datasource.json](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/test/integration-engine/ropid-vymi/data/ropidvymi-datasource.json)
161
+ - frekvence stahování
162
+ - cron definice:
163
+ - cron.vehicle-positions.ropidvymi.checkForNewEvents
164
+ - rabin `*/30 * * * * *`
165
+ - prod `*/30 * * * * *`
166
+ - názvy rabbitmq front
167
+ - vehicle-positions.ropidvymi.checkForNewEvents
168
+
150
169
  #### _Seznam Autobusu API_
151
170
 
152
171
  - zdroj dat
@@ -759,6 +778,44 @@ Task slouží jako ruční spouštěč obnovení všech cache. Nespouští se au
759
778
  - RopidGTFSMetadataModel `ropidgtfs_metadata`,
760
779
  - RopidDeparturesPresetsModel `ropid_departures_presets`
761
780
 
781
+ ### _RopidVYMIWorker_
782
+
783
+ Worker má na starost přípravu podkladových dat pro infotexty pro odjezdové tabule a GTFS real-time alerty
784
+
785
+ #### _task: CheckForNewEventsTask_
786
+
787
+ - vstupní rabbitmq fronta
788
+ - název: vehicle-positions.ropidvymi.checkForNewEvents
789
+ - TTL: 1 minuta
790
+ - parametry: žádné
791
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
792
+ - název: vehicle-positions.ropidvymi.fetchAndProcessEvents
793
+ - datové zdroje
794
+ - ROPID VYMI
795
+ - transformace
796
+ - žádné
797
+ - data modely
798
+ - RopidVYMIMetadataModel `ropidvymi_metadata`
799
+
800
+ #### _task: FetchAndProcessEventsTask_
801
+
802
+ - vstupní rabbitmq fronta
803
+ - název: vehicle-positions.ropidvymi.fetchAndProcessEvents
804
+ - TTL: 1 minuta
805
+ - parametry: `{ digest, data }`
806
+ - validační schéma: [EventFetchOutputValidationSchema](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/integration-engine/ropid-vymi/workers/tasks/schema/EventFetchOutputValidationSchema.ts)
807
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
808
+ - žádné
809
+ - datové zdroje
810
+ - ROPID VYMI
811
+ - transformace
812
+ - [RopidVYMIEventsTransformation](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.ts)
813
+ - data modely
814
+ - RopidVYMIMetadataModel `ropidvymi_metadata`
815
+ - RopidVYMIEventsModel `ropidvymi_events`
816
+ - RopidVYMIEventsRoutesModel `ropidvymi_events_routes`
817
+ - RopidVYMIEventsStopsModel `ropidvymi_events_stops`
818
+
762
819
  ### _VPWorker_
763
820
 
764
821
  Worker má na starost zpracování a transformaci polohových dat, výpočet zpoždění a přípravu GTFS real-time výstupních dat
@@ -1078,12 +1135,12 @@ Worker má na starost generování souborů s realtime daty pro `gtfsrt` endpoin
1078
1135
  - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
1079
1136
  - žádné
1080
1137
  - datové zdroje
1081
- - MPVNET, DPP TCP, DPP metro (UDP → TCP přes MPVnet proxy CHAPS), TELMAX TCP (v produkci vypnuto), ROPID FTPS, VYMI (JIS)
1138
+ - MPVNET, DPP TCP, DPP metro (UDP → TCP přes MPVnet proxy CHAPS), TELMAX TCP (v produkci vypnuto), ROPID FTPS, ROPID VYMI
1082
1139
  - transformace
1083
1140
  - žádné
1084
1141
  - data modely
1085
1142
  - RopidGTFSStopTimesModel `ropidgtfs_stop_times`
1086
- - JISEventsModel `jis_events`
1143
+ - RopidVYMIEventsModel `ropidvymi_events`
1087
1144
  - VPTripsModel `vehiclepositions_trips`
1088
1145
  - VPPositionsModel `vehiclepositions_positions`
1089
1146
 
@@ -1136,7 +1193,7 @@ Pro vlakové spoje, u nichž je v RT datech k dispozici konkrétní nástupišť
1136
1193
 
1137
1194
  Tok dat: pohled `v_public_vehiclepositions_combined_stop_times` (sloupec `assigned_stop_id`, snake_case) → cache `IPublicStopTimeCacheDto.assigned_stop_id` (snake_case) → `GenerateFilesTask` (camelCase v protobuf polích).
1138
1195
 
1139
- Pohled `v_public_vehiclepositions_combined_stop_times` odvozuje `assigned_stop_id` self-joinem na tabulku `ropidgtfs_stops`: hledá záznam, kde `parent_station` odpovídá stanici obsluhované zastávky, `platform_code` se rovná `cis_stop_platform_code` z RT dat (bez ohledu na velikost písmen, `upper()` na obou stranách) a `location_type = 0` (fyzická nástupištní zastávka). Pokud takový záznam neexistuje, je `assigned_stop_id` null.
1196
+ Pohled `v_public_vehiclepositions_combined_stop_times` odvozuje `assigned_stop_id` self-joinem na tabulku `ropidgtfs_stops`: hledá záznam, kde `parent_station` odpovídá stanici obsluhované zastávky, `platform_code` se rovná `cis_stop_platform_code` z RT dat a `location_type = 0` (fyzická nástupištní zastávka). Pokud takový záznam neexistuje, je `assigned_stop_id` null.
1140
1197
 
1141
1198
  _TripUpdate — StopTimeUpdate_
1142
1199
 
@@ -1325,6 +1382,8 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1325
1382
  ![pid precomputed diagram](./assets/pid_precomputed_erd.png)
1326
1383
  - Preset logy a statické tabulky<br/>
1327
1384
  ![pid preset logs and static diagram](./assets/pid_preset_logs_and_static_erd.png)
1385
+ - VYMI<br/>
1386
+ ![pid vymi diagram](./assets/pid_vymi_erd.png)
1328
1387
  - Polohy vozů (tabulky) <br/>
1329
1388
  ![pid vp diagram](./assets/pid_vp_erd.png)
1330
1389
  - Polohy vozů (views) <br/>
@@ -113,14 +113,6 @@ Parsování provádí `MpvStopParser.parsePlatformCode()`. Výsledný kód je ul
113
113
 
114
114
  Pokud MPVNet zpráva vlaku obsahuje informaci o nástupišti (`$.stan`) pro budoucí zastávku a vlak ještě nemá žádnou aktivní RT polohu, vytvoří se syntetická poloha ve stavu `before_track` na základě dat z této zastávky. Díky tomu lze zobrazit kód nástupiště ještě před fyzickým příjezdem vlaku na stanoviště. Kód nástupiště se parsuje stejným způsobem jako výše (`MpvStopParser.parsePlatformCode()`).
115
115
 
116
- Souřadnice syntetické polohy se určují v `SaveDataToDBTask.preparePositionsFromCisStops()` podle první zastávky spoje (`zast[0]`):
117
-
118
- - souřadnice se čtou z pohledu `v_ropidgtfs_cis_stop_platforms` (`CisStopPlatformRepository`) podle `cis`; pohled pro každou železniční stanici/zastávku (`ropidgtfs_cis_stops` s `platform IS NULL`) vrací řádek se souřadnicemi stanice (`platform_code` null) a řádky se souřadnicemi jejích GTFS nástupišť (přes `ropidgtfs_stops.computed_cis_stop_id` → `parent_station`)
119
- - pokud je znám kód koleje první zastávky (`start_cis_stop_platform_code`) a v rámci `parent_station` existuje GTFS nástupiště (`location_type = 0`) se shodným `platform_code`, použijí se souřadnice tohoto nástupiště
120
- - jinak (kolej neznámá nebo nástupiště v GTFS nezmapované) se použijí souřadnice stanice z `ropidgtfs_cis_stops`
121
-
122
- Kódy kolejí se porovnávají bez ohledu na velikost písmen (MPV posílá např. `1a`, GTFS má `1A`). Při změně koleje před odjezdem vznikne s další MPV zprávou nová poloha na novém nástupišti.
123
-
124
116
  ```xml
125
117
  <?xml version="1.0" encoding="utf-8"?>
126
118
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/pid",
3
- "version": "6.0.3-dev.2954837172",
3
+ "version": "6.1.0-rc.2962399658",
4
4
  "description": "Golemio PID Module",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -84,10 +84,10 @@
84
84
  "@apideck/portman": "1.29.3",
85
85
  "@commitlint/cli": "^11.0.0",
86
86
  "@commitlint/config-conventional": "^11.0.0",
87
- "@golemio/cli": "^2.0.0",
88
- "@golemio/core": "4.0.1",
89
- "@golemio/db-common": "1.2.2",
90
- "@golemio/eslint-config": "^1.2.0",
87
+ "@golemio/cli": "2.1.0",
88
+ "@golemio/core": "4.1.4",
89
+ "@golemio/db-common": "1.2.4",
90
+ "@golemio/eslint-config": "1.2.0",
91
91
  "@swc-node/register": "^1.12.1",
92
92
  "@swc/core": "^1.15.10",
93
93
  "@types/chai": "^5.2.3",
@@ -123,7 +123,7 @@
123
123
  "@golemio/core": "^4.0.1-dev.2 || ^4.0.1"
124
124
  },
125
125
  "dependencies": {
126
- "@golemio/ovapi-gtfs-realtime-bindings": "1.4.1-dev.2464451735",
126
+ "@golemio/ovapi-gtfs-realtime-bindings": "1.4.1",
127
127
  "@turf/turf": "^6.5.0",
128
128
  "cheap-ruler": "^3.0.2",
129
129
  "csv-parser": "^3.0.0",
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- const fs = require('fs/promises');
4
- const path = require('path');
5
-
6
- const runSql = (db, name) =>
7
- fs.readFile(path.join(__dirname, 'sqls', name), 'utf-8').then((sql) => {
8
- console.log('received data: ' + sql);
9
- return db.runSql(sql);
10
- });
11
-
12
- exports.up = (db) => runSql(db, '20261009120000-case-insensitive-assigned-stop-id-up.sql');
13
-
14
- exports.down = (db) => runSql(db, '20261009120000-case-insensitive-assigned-stop-id-down.sql');
15
-
16
- exports._meta = { version: 1 };
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- const fs = require('fs/promises');
4
- const path = require('path');
5
-
6
- const runSql = (db, name) =>
7
- fs.readFile(path.join(__dirname, 'sqls', name), 'utf-8').then((sql) => {
8
- console.log('received data: ' + sql);
9
- return db.runSql(sql);
10
- });
11
-
12
- exports.up = (db) => runSql(db, '20261012120000-cis-stop-platforms-view-up.sql');
13
-
14
- exports.down = (db) => runSql(db, '20261012120000-cis-stop-platforms-view-down.sql');
15
-
16
- exports._meta = { version: 1 };
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- const fs = require('fs/promises');
4
- const path = require('path');
5
-
6
- const runSql = (db, name) =>
7
- fs.readFile(path.join(__dirname, 'sqls', name), 'utf-8').then((sql) => {
8
- console.log('received data: ' + sql);
9
- return db.runSql(sql);
10
- });
11
-
12
- exports.up = (db) => runSql(db, '20261013120000-drop-ropidvymi-tables-up.sql');
13
-
14
- exports.down = (db) => runSql(db, '20261013120000-drop-ropidvymi-tables-down.sql');
15
-
16
- exports._meta = { version: 1 };
@@ -1,65 +0,0 @@
1
- create
2
- or replace view v_public_vehiclepositions_combined_stop_times as
3
- select
4
- distinct on (rt_trip_id, stop_sequence) stop_times.rt_trip_id,
5
- vt.gtfs_trip_id,
6
- stop_times.stop_sequence,
7
- stop_times.stop_arr_delay,
8
- stop_times.stop_dep_delay,
9
- vt.gtfs_route_type,
10
- vt.gtfs_route_short_name,
11
- vt.run_number,
12
- vt.internal_run_number,
13
- vt.provider_source_type,
14
- vt.cis_trip_number,
15
- vt.vehicle_registration_number,
16
- stop_times.stop_id,
17
- vcs.cis_stop_platform_code,
18
- rs.platform_code,
19
- rs.stop_name,
20
- platform.stop_id as assigned_stop_id
21
- from
22
- (
23
- select
24
- *
25
- from
26
- v_public_vehiclepositions_future_stop_times prediction
27
- union
28
- all
29
- select
30
- *
31
- from
32
- v_public_vehiclepositions_past_stop_times history
33
- ) as stop_times
34
- join vehiclepositions_trips vt on vt.id = stop_times.rt_trip_id
35
- join vehiclepositions_positions vp on vt.last_position_id = vp.id
36
- and (
37
- vp.valid_to is null
38
- or vp.valid_to >= now()
39
- )
40
- and vp.state_position != 'after_track'
41
- inner join ropidgtfs_stops rs on rs.stop_id = stop_times.stop_id
42
- left join ropidgtfs_cis_stops rcs on rcs.id = rs.computed_cis_stop_id
43
- left join vehiclepositions_cis_stops vcs
44
- on vcs.rt_trip_id = stop_times.rt_trip_id
45
- and vcs.cis_stop_group_id = rcs.cis
46
- left join ropidgtfs_stops platform
47
- on rs.parent_station is not null
48
- and platform.parent_station = rs.parent_station
49
- and platform.platform_code = vcs.cis_stop_platform_code
50
- and platform.location_type = 0
51
- order by
52
- rt_trip_id,
53
- stop_sequence,
54
- platform.stop_id;
55
-
56
- create index ropidgtfs_stops_parent_station_platform_code_idx
57
- on ropidgtfs_stops using btree (parent_station, platform_code);
58
-
59
- create index ropidgtfs_stops_actual_parent_station_platform_code_idx
60
- on ropidgtfs_stops_actual using btree (parent_station, platform_code);
61
-
62
- drop index ropidgtfs_stops_parent_station_upper_platform_code_idx;
63
-
64
- drop index if exists ropidgtfs_stops_actual_parent_station_upper_platform_code_idx;
65
- drop index if exists ropidgtfs_stops_tmp_parent_station_upper_idx;
@@ -1,66 +0,0 @@
1
- -- MPV and GTFS platform codes differ in case (e.g. 1a vs 1A)
2
- create
3
- or replace view v_public_vehiclepositions_combined_stop_times as
4
- select
5
- distinct on (rt_trip_id, stop_sequence) stop_times.rt_trip_id,
6
- vt.gtfs_trip_id,
7
- stop_times.stop_sequence,
8
- stop_times.stop_arr_delay,
9
- stop_times.stop_dep_delay,
10
- vt.gtfs_route_type,
11
- vt.gtfs_route_short_name,
12
- vt.run_number,
13
- vt.internal_run_number,
14
- vt.provider_source_type,
15
- vt.cis_trip_number,
16
- vt.vehicle_registration_number,
17
- stop_times.stop_id,
18
- vcs.cis_stop_platform_code,
19
- rs.platform_code,
20
- rs.stop_name,
21
- platform.stop_id as assigned_stop_id
22
- from
23
- (
24
- select
25
- *
26
- from
27
- v_public_vehiclepositions_future_stop_times prediction
28
- union
29
- all
30
- select
31
- *
32
- from
33
- v_public_vehiclepositions_past_stop_times history
34
- ) as stop_times
35
- join vehiclepositions_trips vt on vt.id = stop_times.rt_trip_id
36
- join vehiclepositions_positions vp on vt.last_position_id = vp.id
37
- and (
38
- vp.valid_to is null
39
- or vp.valid_to >= now()
40
- )
41
- and vp.state_position != 'after_track'
42
- inner join ropidgtfs_stops rs on rs.stop_id = stop_times.stop_id
43
- left join ropidgtfs_cis_stops rcs on rcs.id = rs.computed_cis_stop_id
44
- left join vehiclepositions_cis_stops vcs
45
- on vcs.rt_trip_id = stop_times.rt_trip_id
46
- and vcs.cis_stop_group_id = rcs.cis
47
- left join ropidgtfs_stops platform
48
- on rs.parent_station is not null
49
- and platform.parent_station = rs.parent_station
50
- and upper(platform.platform_code) = upper(vcs.cis_stop_platform_code)
51
- and platform.location_type = 0
52
- order by
53
- rt_trip_id,
54
- stop_sequence,
55
- platform.stop_id;
56
-
57
- create index ropidgtfs_stops_parent_station_upper_platform_code_idx
58
- on ropidgtfs_stops using btree (parent_station, upper(platform_code));
59
-
60
- create index ropidgtfs_stops_actual_parent_station_upper_platform_code_idx
61
- on ropidgtfs_stops_actual using btree (parent_station, upper(platform_code));
62
-
63
- drop index ropidgtfs_stops_parent_station_platform_code_idx;
64
-
65
- drop index if exists ropidgtfs_stops_actual_parent_station_platform_code_idx;
66
- drop index if exists ropidgtfs_stops_tmp_parent_station_platform_code_idx;
@@ -1,5 +0,0 @@
1
- drop view v_ropidgtfs_cis_stop_platforms;
2
-
3
- drop index ropidgtfs_cis_stops_station_cis_idx;
4
-
5
- drop index if exists ropidgtfs_cis_stops_actual_station_cis_idx;
@@ -1,33 +0,0 @@
1
- -- Coordinates of a CIS railway station/halt (cis stop without platform) and of its GTFS platforms.
2
- -- Row with platform_code null holds the station coordinates (fallback).
3
- create view v_ropidgtfs_cis_stop_platforms as
4
- select
5
- rcs.cis,
6
- null::varchar as platform_code,
7
- rcs.lat,
8
- rcs.lon
9
- from ropidgtfs_cis_stops rcs
10
- where rcs.platform is null
11
- union all
12
- select distinct
13
- rcs.cis,
14
- platform.platform_code,
15
- platform.stop_lat as lat,
16
- platform.stop_lon as lon
17
- from ropidgtfs_cis_stops rcs
18
- join ropidgtfs_stops rs
19
- on rs.computed_cis_stop_id = rcs.id
20
- and rs.parent_station is not null
21
- join ropidgtfs_stops platform
22
- on platform.parent_station = rs.parent_station
23
- and platform.location_type = 0
24
- and platform.platform_code is not null
25
- where rcs.platform is null;
26
-
27
- -- partial index matching the view filter; parent index is copied to _actual by GTFS hot swap
28
- -- (like ... including all), _actual index covers data until the next GTFS import
29
- create index ropidgtfs_cis_stops_station_cis_idx
30
- on ropidgtfs_cis_stops using btree (cis) where platform is null;
31
-
32
- create index ropidgtfs_cis_stops_actual_station_cis_idx
33
- on ropidgtfs_cis_stops_actual using btree (cis) where platform is null;