@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.
- package/db/example/00_clear_test_data.sql +6 -0
- package/db/example/03_ropidgtfs_dump.sql +0 -5
- package/db/example/04_ropidvymi_example.sql +40 -0
- package/db/example/07_tmp_example.sql +4 -0
- package/db/example/19_train_trip_with_cis_platform_code.sql +1 -2
- package/dist/integration-engine/index.d.ts +1 -0
- package/dist/integration-engine/index.js +5 -0
- package/dist/integration-engine/index.js.map +1 -1
- package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.d.ts +21 -0
- package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.js +81 -0
- package/dist/integration-engine/ropid-vymi/RopidVYMIEventsTransformation.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/index.d.ts +2 -0
- package/dist/integration-engine/ropid-vymi/index.js +3 -0
- package/dist/integration-engine/ropid-vymi/index.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.d.ts +9 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.js +37 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsModel.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.d.ts +9 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js +29 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsRoutesModel.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.d.ts +7 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.js +21 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIEventsStopsModel.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.d.ts +8 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.js +30 -0
- package/dist/integration-engine/ropid-vymi/models/RopidVYMIMetadataModel.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/models/index.d.ts +4 -0
- package/dist/integration-engine/ropid-vymi/models/index.js +5 -0
- package/dist/integration-engine/ropid-vymi/models/index.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/workers/RopidVYMIWorker.d.ts +5 -0
- package/dist/integration-engine/ropid-vymi/workers/RopidVYMIWorker.js +14 -0
- package/dist/integration-engine/ropid-vymi/workers/RopidVYMIWorker.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/CheckForNewEventsTask.d.ts +8 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/CheckForNewEventsTask.js +19 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/CheckForNewEventsTask.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/FetchAndProcessEventsTask.d.ts +17 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/FetchAndProcessEventsTask.js +94 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/FetchAndProcessEventsTask.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiHelper.d.ts +11 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiHelper.js +72 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiHelper.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiOutputLevel.d.ts +5 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiOutputLevel.js +7 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/helpers/RopidVYMIApiOutputLevel.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/interfaces/IEventFetchOutput.d.ts +5 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/interfaces/IEventFetchOutput.js +2 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/interfaces/IEventFetchOutput.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/schema/EventFetchOutputValidationSchema.d.ts +6 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/schema/EventFetchOutputValidationSchema.js +27 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/schema/EventFetchOutputValidationSchema.js.map +1 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/schema/RopidVYMIEventValidationSchema.d.ts +47 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/schema/RopidVYMIEventValidationSchema.js +200 -0
- package/dist/integration-engine/ropid-vymi/workers/tasks/schema/RopidVYMIEventValidationSchema.js.map +1 -0
- package/dist/integration-engine/shared/RopidMetadataModel.d.ts +2 -1
- package/dist/integration-engine/shared/RopidMetadataModel.js +1 -0
- package/dist/integration-engine/shared/RopidMetadataModel.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/Di.js +2 -2
- package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +1 -1
- package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertCauseMapper.d.ts +2 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertCauseMapper.js +51 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertCauseMapper.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertEffectMapper.d.ts +6 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertEffectMapper.js +93 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertEffectMapper.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertsGenerator.d.ts +4 -1
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertsGenerator.js +11 -3
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/helpers/AlertsGenerator.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js +4 -1
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/tasks/GenerateFilesTask.js.map +1 -1
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/transformations/AlertsTransformation.d.ts +14 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/transformations/AlertsTransformation.js +82 -0
- package/dist/integration-engine/vehicle-positions/workers/gtfs-rt/transformations/AlertsTransformation.js.map +1 -0
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.d.ts +3 -8
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js +31 -41
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/SaveDataToDBTask.js.map +1 -1
- package/dist/schema-definitions/index.d.ts +1 -0
- package/dist/schema-definitions/index.js +1 -0
- package/dist/schema-definitions/index.js.map +1 -1
- package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.d.ts +151 -0
- package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.js +152 -0
- package/dist/schema-definitions/ropid-vymi/RopidVYMIOutputSchemas.js.map +1 -0
- package/dist/schema-definitions/ropid-vymi/RopidVYMISDMA.d.ts +58 -0
- package/dist/schema-definitions/ropid-vymi/RopidVYMISDMA.js +74 -0
- package/dist/schema-definitions/ropid-vymi/RopidVYMISDMA.js.map +1 -0
- package/dist/schema-definitions/ropid-vymi/index.d.ts +52 -0
- package/dist/schema-definitions/ropid-vymi/index.js +171 -0
- package/dist/schema-definitions/ropid-vymi/index.js.map +1 -0
- package/dist/schema-definitions/vehicle-positions/models/views/index.d.ts +0 -1
- package/dist/schema-definitions/vehicle-positions/models/views/index.js +0 -1
- package/dist/schema-definitions/vehicle-positions/models/views/index.js.map +1 -1
- package/docs/assets/pid_vymi_erd.png +0 -0
- package/docs/cache/types/redis.md +2 -2
- package/docs/implementation_documentation.md +62 -3
- package/docs/processing/input_realtime_data/http_mpvnet.md +0 -8
- package/package.json +6 -6
- package/db/migrations/postgresql/20261009120000-case-insensitive-assigned-stop-id.js +0 -16
- package/db/migrations/postgresql/20261012120000-cis-stop-platforms-view.js +0 -16
- package/db/migrations/postgresql/20261013120000-drop-ropidvymi-tables.js +0 -16
- package/db/migrations/postgresql/sqls/20261009120000-case-insensitive-assigned-stop-id-down.sql +0 -65
- package/db/migrations/postgresql/sqls/20261009120000-case-insensitive-assigned-stop-id-up.sql +0 -66
- package/db/migrations/postgresql/sqls/20261012120000-cis-stop-platforms-view-down.sql +0 -5
- package/db/migrations/postgresql/sqls/20261012120000-cis-stop-platforms-view-up.sql +0 -33
- package/db/migrations/postgresql/sqls/20261013120000-drop-ropidvymi-tables-down.sql +0 -119
- package/db/migrations/postgresql/sqls/20261013120000-drop-ropidvymi-tables-up.sql +0 -7
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/views/CisStopPlatformRepository.d.ts +0 -12
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/views/CisStopPlatformRepository.js +0 -47
- package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/views/CisStopPlatformRepository.js.map +0 -1
- package/dist/schema-definitions/vehicle-positions/models/views/CisStopPlatformModel.d.ts +0 -17
- package/dist/schema-definitions/vehicle-positions/models/views/CisStopPlatformModel.js +0 -22
- package/dist/schema-definitions/vehicle-positions/models/views/CisStopPlatformModel.js.map +0 -1
- package/dist/schema-definitions/vehicle-positions/models/views/interfaces/ICisStopPlatformDto.d.ts +0 -6
- package/dist/schema-definitions/vehicle-positions/models/views/interfaces/ICisStopPlatformDto.js +0 -2
- 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 +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
|
|
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_*,
|
|
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` + `
|
|
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
|
|
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
|
-
-
|
|
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
|
|
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
|

|
|
1326
1383
|
- Preset logy a statické tabulky<br/>
|
|
1327
1384
|

|
|
1385
|
+
- VYMI<br/>
|
|
1386
|
+

|
|
1328
1387
|
- Polohy vozů (tabulky) <br/>
|
|
1329
1388
|

|
|
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
|
+
"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": "
|
|
88
|
-
"@golemio/core": "4.
|
|
89
|
-
"@golemio/db-common": "1.2.
|
|
90
|
-
"@golemio/eslint-config": "
|
|
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
|
|
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 };
|
package/db/migrations/postgresql/sqls/20261009120000-case-insensitive-assigned-stop-id-down.sql
DELETED
|
@@ -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;
|
package/db/migrations/postgresql/sqls/20261009120000-case-insensitive-assigned-stop-id-up.sql
DELETED
|
@@ -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,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;
|