@golemio/pid 5.7.3 → 5.7.4-dev.2392704615

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 (128) hide show
  1. package/db/migrations/postgresql/20260317154729-add-repeat-fields-to-jis-infotexts.js +53 -0
  2. package/db/migrations/postgresql/sqls/20260317154729-add-repeat-fields-to-jis-infotexts-down.sql +5 -0
  3. package/db/migrations/postgresql/sqls/20260317154729-add-repeat-fields-to-jis-infotexts-up.sql +10 -0
  4. package/dist/const.d.ts +0 -1
  5. package/dist/const.js +1 -2
  6. package/dist/const.js.map +1 -1
  7. package/dist/integration-engine/jis/transformations/JISInfotextCacheTranformation.js +3 -0
  8. package/dist/integration-engine/jis/transformations/JISInfotextCacheTranformation.js.map +1 -1
  9. package/dist/integration-engine/jis/transformations/JISInfotextsTransformation.js +3 -0
  10. package/dist/integration-engine/jis/transformations/JISInfotextsTransformation.js.map +1 -1
  11. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +14 -0
  12. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js +47 -0
  13. package/dist/integration-engine/ropid-gtfs/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
  14. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.d.ts +3 -2
  15. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js +4 -2
  16. package/dist/integration-engine/ropid-gtfs/datasources/StaticDataSourceFactory.js.map +1 -1
  17. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.d.ts +9 -0
  18. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js +47 -0
  19. package/dist/integration-engine/ropid-gtfs/datasources/static-data/NotPublicVehiclesDataSourceProvider.js.map +1 -0
  20. package/dist/integration-engine/ropid-gtfs/ioc/Di.js +4 -0
  21. package/dist/integration-engine/ropid-gtfs/ioc/Di.js.map +1 -1
  22. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.d.ts +2 -0
  23. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js +2 -0
  24. package/dist/integration-engine/ropid-gtfs/ioc/RopidGtfsContainerToken.js.map +1 -1
  25. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.d.ts +6 -1
  26. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js +39 -10
  27. package/dist/integration-engine/ropid-gtfs/workers/timetables/tasks/SaveStaticDataTask.js.map +1 -1
  28. package/dist/integration-engine/vehicle-positions/ioc/Di.js +2 -0
  29. package/dist/integration-engine/vehicle-positions/ioc/Di.js.map +1 -1
  30. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.d.ts +1 -0
  31. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js +1 -0
  32. package/dist/integration-engine/vehicle-positions/ioc/VPContainerToken.js.map +1 -1
  33. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.d.ts +11 -5
  34. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js +36 -9
  35. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/BusMessageFilter.js.map +1 -1
  36. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.d.ts +4 -1
  37. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js +26 -9
  38. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/CommonMessageProcessor.js.map +1 -1
  39. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.d.ts +7 -3
  40. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js +26 -8
  41. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/TramMessageFilter.js.map +1 -1
  42. package/dist/integration-engine/vehicle-positions/workers/runs/helpers/interfaces/ICommonMessageFilter.d.ts +1 -1
  43. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js +3 -2
  44. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveBusRunsToDBTask.js.map +1 -1
  45. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js +4 -3
  46. package/dist/integration-engine/vehicle-positions/workers/runs/tasks/SaveTramRunsToDBTask.js.map +1 -1
  47. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.d.ts +1 -2
  48. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js +3 -10
  49. package/dist/integration-engine/vehicle-positions/workers/runs/transformations/CommonRunsMessagesTransformation.js.map +1 -1
  50. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.d.ts +2 -1
  51. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js +5 -3
  52. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/data-access/helpers/TripsMapper.js.map +1 -1
  53. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/interfaces/IUpdateRunsGtfsTripInput.d.ts +11 -0
  54. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.d.ts +3 -0
  55. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js +11 -0
  56. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.js.map +1 -1
  57. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js +4 -3
  58. package/dist/integration-engine/vehicle-positions/workers/vehicle-positions/tasks/UpdateRunsGtfsTripIdTask.js.map +1 -1
  59. package/dist/output-gateway/jis/data-access/cache/JISInfotextsRedisRepository.js +1 -0
  60. package/dist/output-gateway/jis/data-access/cache/JISInfotextsRedisRepository.js.map +1 -1
  61. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.d.ts +10 -3
  62. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js +30 -7
  63. package/dist/output-gateway/vehicle-positions/data-access/PositionRepository.js.map +1 -1
  64. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.d.ts +7 -3
  65. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js +30 -7
  66. package/dist/output-gateway/vehicle-positions/data-access/TripRepository.js.map +1 -1
  67. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.d.ts +10 -3
  68. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js +30 -7
  69. package/dist/output-gateway/vehicle-positions/data-access/VehicleDescriptorRepository.js.map +1 -1
  70. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.d.ts +10 -3
  71. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js +30 -7
  72. package/dist/output-gateway/vehicle-positions/data-access/VehicleTypeRepository.js.map +1 -1
  73. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.d.ts +10 -0
  74. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js +45 -0
  75. package/dist/output-gateway/vehicle-positions/data-access/cache/NotPublicVehiclesRedisRepository.js.map +1 -0
  76. package/dist/output-gateway/vehicle-positions/data-access/index.js +9 -18
  77. package/dist/output-gateway/vehicle-positions/data-access/index.js.map +1 -1
  78. package/dist/output-gateway/vehicle-positions/data-access/interfaces/ITripWithPositionRepository.d.ts +3 -2
  79. package/dist/output-gateway/vehicle-positions/data-access/interfaces/IVPRepositoryInstances.d.ts +6 -6
  80. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.d.ts +7 -3
  81. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js +30 -7
  82. package/dist/output-gateway/vehicle-positions/data-access/views/ProcessedPositionRepository.js.map +1 -1
  83. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.d.ts +17 -7
  84. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js +112 -42
  85. package/dist/output-gateway/vehicle-positions/data-access/views/TripWithLastPositionRepository.js.map +1 -1
  86. package/dist/output-gateway/vehicle-positions/ioc/Di.d.ts +3 -0
  87. package/dist/output-gateway/vehicle-positions/ioc/Di.js +23 -0
  88. package/dist/output-gateway/vehicle-positions/ioc/Di.js.map +1 -0
  89. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.d.ts +9 -0
  90. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js +15 -0
  91. package/dist/output-gateway/vehicle-positions/ioc/OgVehiclePositionsToken.js.map +1 -0
  92. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.d.ts +3 -0
  93. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js +40 -0
  94. package/dist/schema-definitions/datasources/static-data/NotPublicVehiclesJsonSchema.js.map +1 -0
  95. package/dist/schema-definitions/datasources/static-data/index.d.ts +1 -0
  96. package/dist/schema-definitions/datasources/static-data/index.js +1 -0
  97. package/dist/schema-definitions/datasources/static-data/index.js.map +1 -1
  98. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.d.ts +35 -0
  99. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js +18 -0
  100. package/dist/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.js.map +1 -0
  101. package/dist/schema-definitions/datasources/static-data/interfaces/index.d.ts +1 -0
  102. package/dist/schema-definitions/datasources/static-data/interfaces/index.js +1 -0
  103. package/dist/schema-definitions/datasources/static-data/interfaces/index.js.map +1 -1
  104. package/dist/schema-definitions/jis/datasources/JISInfotextsJsonSchema.js +16 -0
  105. package/dist/schema-definitions/jis/datasources/JISInfotextsJsonSchema.js.map +1 -1
  106. package/dist/schema-definitions/jis/datasources/interfaces/IJISInfotext.d.ts +5 -0
  107. package/dist/schema-definitions/jis/models/JISInfotextsModel.d.ts +3 -0
  108. package/dist/schema-definitions/jis/models/JISInfotextsModel.js +19 -0
  109. package/dist/schema-definitions/jis/models/JISInfotextsModel.js.map +1 -1
  110. package/dist/schema-definitions/jis/models/interfaces/IJISInfotext.d.ts +3 -0
  111. package/dist/schema-definitions/jis/redis/interfaces/IJISInfotextDto.d.ts +3 -0
  112. package/dist/schema-definitions/jis/redis/schemas/JISInfotextDtoSchema.js +12 -0
  113. package/dist/schema-definitions/jis/redis/schemas/JISInfotextDtoSchema.js.map +1 -1
  114. package/dist/schema-definitions/ropid-gtfs/redis/const.d.ts +2 -0
  115. package/dist/schema-definitions/ropid-gtfs/redis/const.js +3 -1
  116. package/dist/schema-definitions/ropid-gtfs/redis/const.js.map +1 -1
  117. package/dist/schema-definitions/vehicle-positions/models/interfaces/ICommonRunWithMessageDto.d.ts +8 -0
  118. package/docs/asyncapi.yaml +31 -2
  119. package/docs/cache/types/redis.md +30 -2
  120. package/docs/examples/not_public_vehicles.json +9 -0
  121. package/docs/implementation_documentation.md +101 -4
  122. package/docs/jis/index.md +17 -0
  123. package/docs/openapi-input.yaml +46 -0
  124. package/docs/processing/input_realtime_data/http_mpvnet.md +21 -0
  125. package/docs/processing/state_position_tracking/http_mpvnet.md +1 -0
  126. package/docs/processing/state_position_tracking/tcp_dpp_common.md +2 -1
  127. package/docs/processing/transferboards_filtering.md +312 -0
  128. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"JISInfotextsJsonSchema.js","sourceRoot":"","sources":["../../../../src/schema-definitions/jis/datasources/JISInfotextsJsonSchema.ts"],"names":[],"mappings":";;;AAAA,oGAAqF;AAIxE,QAAA,sBAAsB,GAAmC;IAClE,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtB,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,uDAAwB,CAAC,EAAE;YACjF,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;YAC7D,aAAa,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;oBAC9C,GAAG,EAAE;wBACD,KAAK,EAAE;4BACH,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;4BACvC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;yBACnC;qBACJ;iBACJ;gBACD,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,OAAO,CAAC;aACtB;YACD,gBAAgB,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtB,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;iBACxE;gBACD,oBAAoB,EAAE,KAAK;gBAC3B,QAAQ,EAAE,CAAC,IAAI,CAAC;aACnB;YACD,eAAe,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE;oBACR,KAAK,EAAE;wBACH,IAAI,EAAE,OAAO;wBACb,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE;4BACH,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACR,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BACzB;4BACD,oBAAoB,EAAE,KAAK;4BAC3B,QAAQ,EAAE,CAAC,IAAI,CAAC;yBACnB;qBACJ;iBACJ;gBACD,oBAAoB,EAAE,KAAK;aAC9B;YACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAC1D,uBAAuB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;SACnE;QACD,QAAQ,EAAE;YACN,IAAI;YACJ,gBAAgB;YAChB,cAAc;YACd,eAAe;YACf,kBAAkB;YAClB,mBAAmB;YACnB,yBAAyB;SAC5B;KACJ;CACJ,CAAC"}
1
+ {"version":3,"file":"JISInfotextsJsonSchema.js","sourceRoot":"","sources":["../../../../src/schema-definitions/jis/datasources/JISInfotextsJsonSchema.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,11 @@ export interface IJISInfotext {
10
10
  end: string | null;
11
11
  };
12
12
  description_text: IJISTranslationText;
13
+ repeat?: {
14
+ enabled: boolean;
15
+ time_start: string | null;
16
+ time_end: string | null;
17
+ } | null;
13
18
  informed_entity?: {
14
19
  stops?: IJISInfotextStop[] | null;
15
20
  } | null;
@@ -11,6 +11,9 @@ export declare class JISInfotextsModel extends Model<InferAttributes<JISInfotext
11
11
  active_period_start: Date;
12
12
  active_period_end: Date | null;
13
13
  description_text: IJISTranslationText;
14
+ repeat_enabled: boolean;
15
+ repeat_time_start: string | null;
16
+ repeat_time_end: string | null;
14
17
  created_timestamp: Date;
15
18
  updated_timestamp: Date;
16
19
  created_at: CreationOptional<Date>;
@@ -32,6 +32,18 @@ JISInfotextsModel.attributeModel = {
32
32
  type: sequelize_1.DataTypes.JSONB,
33
33
  allowNull: false,
34
34
  },
35
+ repeat_enabled: {
36
+ type: sequelize_1.DataTypes.BOOLEAN,
37
+ defaultValue: false,
38
+ },
39
+ repeat_time_start: {
40
+ type: sequelize_1.DataTypes.TIME,
41
+ allowNull: true,
42
+ },
43
+ repeat_time_end: {
44
+ type: sequelize_1.DataTypes.TIME,
45
+ allowNull: true,
46
+ },
35
47
  created_timestamp: {
36
48
  type: sequelize_1.DataTypes.DATE,
37
49
  allowNull: false,
@@ -65,6 +77,13 @@ JISInfotextsModel.jsonSchema = {
65
77
  ],
66
78
  },
67
79
  description_text: { $ref: "#/definitions/Translation" },
80
+ repeat_enabled: { type: "boolean" },
81
+ repeat_time_start: {
82
+ oneOf: [{ type: "string" }, { type: "null", nullable: true }],
83
+ },
84
+ repeat_time_end: {
85
+ oneOf: [{ type: "string" }, { type: "null", nullable: true }],
86
+ },
68
87
  created_timestamp: { type: "object", required: ["toISOString"] },
69
88
  updated_timestamp: { type: "object", required: ["toISOString"] },
70
89
  },
@@ -1 +1 @@
1
- {"version":3,"file":"JISInfotextsModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/jis/models/JISInfotextsModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JISInfotextsModel.js","sourceRoot":"","sources":["../../../../src/schema-definitions/jis/models/JISInfotextsModel.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,9 @@ export interface IJISInfotext {
7
7
  active_period_start: Date;
8
8
  active_period_end: Date | null;
9
9
  description_text: IJISTranslationText;
10
+ repeat_enabled: boolean;
11
+ repeat_time_start: string | null;
12
+ repeat_time_end: string | null;
10
13
  created_timestamp: Date;
11
14
  updated_timestamp: Date;
12
15
  }
@@ -5,6 +5,9 @@ export interface IJISInfotextDto {
5
5
  display_type: string;
6
6
  active_period_start: string;
7
7
  active_period_end: string | null;
8
+ repeat_enabled?: boolean | null;
9
+ repeat_time_start?: string | null;
10
+ repeat_time_end?: string | null;
8
11
  description_text: {
9
12
  cs: string;
10
13
  en: string | null;
@@ -29,6 +29,18 @@ exports.JISInfotextDtoSchema = {
29
29
  required: ["cs", "en"],
30
30
  additionalProperties: false,
31
31
  },
32
+ repeat_enabled: {
33
+ oneOf: [{ type: "boolean" }, { type: "null", nullable: true }],
34
+ nullable: true,
35
+ },
36
+ repeat_time_start: {
37
+ oneOf: [{ type: "string" }, { type: "null", nullable: true }],
38
+ nullable: true,
39
+ },
40
+ repeat_time_end: {
41
+ oneOf: [{ type: "string" }, { type: "null", nullable: true }],
42
+ nullable: true,
43
+ },
32
44
  created_timestamp: { type: "string", format: "date-time" },
33
45
  updated_timestamp: { type: "string", format: "date-time" },
34
46
  stops: {
@@ -1 +1 @@
1
- {"version":3,"file":"JISInfotextDtoSchema.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/jis/redis/schemas/JISInfotextDtoSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,oBAAoB,GAAsC;IACnE,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtB,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAC5D,iBAAiB,EAAE;gBACf,KAAK,EAAE;oBACH,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;oBACvC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACnC;aACJ;YACD,gBAAgB,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtB,EAAE,EAAE;wBACA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;qBAChE;iBACJ;gBACD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;gBACtB,oBAAoB,EAAE,KAAK;aAC9B;YACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAC1D,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAC1D,KAAK,EAAE;gBACH,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC9B;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;oBACrB,oBAAoB,EAAE,KAAK;iBAC9B;aACJ;SACJ;QACD,QAAQ,EAAE;YACN,IAAI;YACJ,gBAAgB;YAChB,cAAc;YACd,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;YACnB,mBAAmB;YACnB,OAAO;SACV;QACD,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC"}
1
+ {"version":3,"file":"JISInfotextDtoSchema.js","sourceRoot":"","sources":["../../../../../src/schema-definitions/jis/redis/schemas/JISInfotextDtoSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,oBAAoB,GAAsC;IACnE,OAAO,EAAE,yCAAyC;IAClD,KAAK,EAAE,gBAAgB;IACvB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtB,cAAc,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,mBAAmB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAC5D,iBAAiB,EAAE;gBACf,KAAK,EAAE;oBACH,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;oBACvC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;iBACnC;aACJ;YACD,gBAAgB,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACR,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACtB,EAAE,EAAE;wBACA,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;qBAChE;iBACJ;gBACD,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;gBACtB,oBAAoB,EAAE,KAAK;aAC9B;YACD,cAAc,EAAE;gBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC9D,QAAQ,EAAE,IAAI;aACjB;YACD,iBAAiB,EAAE;gBACf,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC7D,QAAQ,EAAE,IAAI;aACjB;YACD,eAAe,EAAE;gBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC7D,QAAQ,EAAE,IAAI;aACjB;YACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAC1D,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAC1D,KAAK,EAAE;gBACH,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC9B;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;oBACrB,oBAAoB,EAAE,KAAK;iBAC9B;aACJ;SACJ;QACD,QAAQ,EAAE;YACN,IAAI;YACJ,gBAAgB;YAChB,cAAc;YACd,qBAAqB;YACrB,kBAAkB;YAClB,mBAAmB;YACnB,mBAAmB;YACnB,OAAO;SACV;QACD,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC"}
@@ -1,3 +1,5 @@
1
1
  export declare const GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = "gtfsRunSchedule";
2
2
  export declare const PUBLIC_DEPARTURE_NAMESPACE_PREFIX = "gtfsPublicDepartureCache";
3
3
  export declare const GTFS_STOPS_NAMESPACE_PREFIX = "gtfsStopsCache";
4
+ export declare const CONFIG_NAMESPACE_PREFIX = "config";
5
+ export declare const NOT_PUBLIC_VEHICLES_KEY = "notPublicVehicles";
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GTFS_STOPS_NAMESPACE_PREFIX = exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = void 0;
3
+ exports.NOT_PUBLIC_VEHICLES_KEY = exports.CONFIG_NAMESPACE_PREFIX = exports.GTFS_STOPS_NAMESPACE_PREFIX = exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = void 0;
4
4
  exports.GTFS_RUN_SCHEDULE_NAMESPACE_PREFIX = "gtfsRunSchedule";
5
5
  exports.PUBLIC_DEPARTURE_NAMESPACE_PREFIX = "gtfsPublicDepartureCache";
6
6
  exports.GTFS_STOPS_NAMESPACE_PREFIX = "gtfsStopsCache";
7
+ exports.CONFIG_NAMESPACE_PREFIX = "config";
8
+ exports.NOT_PUBLIC_VEHICLES_KEY = "notPublicVehicles";
7
9
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/schema-definitions/ropid-gtfs/redis/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AACvD,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAC/D,QAAA,2BAA2B,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../src/schema-definitions/ropid-gtfs/redis/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,kCAAkC,GAAG,iBAAiB,CAAC;AACvD,QAAA,iCAAiC,GAAG,0BAA0B,CAAC;AAC/D,QAAA,2BAA2B,GAAG,gBAAgB,CAAC;AAC/C,QAAA,uBAAuB,GAAG,QAAQ,CAAC;AACnC,QAAA,uBAAuB,GAAG,mBAAmB,CAAC"}
@@ -1,6 +1,14 @@
1
+ import { GTFSRouteTypeEnum } from "../../../../helpers/RouteTypeEnums";
1
2
  import { ICommonRunsMessagesModel } from "./ICommonRunsMessagesModel";
2
3
  import { ICommonRunsModel } from "./ICommonRunsModel";
3
4
  export interface ICommonRunWithMessageDto {
4
5
  run: ICommonRunsModel;
5
6
  run_message: ICommonRunsMessagesModel;
7
+ /**
8
+ * Flag set by message filters to indicate this is a not-public vehicle
9
+ * (replacement bus/tram without schedule)
10
+ * Used by processor to determine if missing timestamp is acceptable
11
+ */
12
+ isNotPublic?: boolean;
13
+ notPublicVehicleRouteType?: GTFSRouteTypeEnum.TRAM | GTFSRouteTypeEnum.BUS;
6
14
  }
@@ -558,6 +558,13 @@ components:
558
558
  run_message:
559
559
  type: object
560
560
  $ref: "#/components/schemas/ICommonRunsMessagesModel"
561
+ isNotPublic:
562
+ type: boolean
563
+ description: Flag indicating if this is a not-public vehicle (e.g., replacement bus/tram). Optional.
564
+ notPublicVehicleRouteType:
565
+ type: number
566
+ enum: [0, 3]
567
+ description: GTFS route type for not-public vehicles (0=tram, 3=bus). Only populated when isNotPublic is true. Used to determine correct vehicle type mapping.
561
568
  IUpdateDelayInput:
562
569
  payload:
563
570
  type: object
@@ -718,8 +725,12 @@ components:
718
725
  type: string
719
726
  description: The timestamp when the message was last sent.
720
727
  wheelchair_accessible:
721
- type: boolean
722
- description: Indicates if the vehicle is wheelchair accessible.
728
+ type: [boolean, "null"]
729
+ description: |
730
+ Raw wheelchair accessibility flag from vehiclepositions_trips.
731
+ Mapped to wheelchairAccessible proto enum in GTFS-RT VehicleDescriptor:
732
+ null → WHEELCHAIR_ACCESSIBLE_UNSPECIFIED (0), true → WHEELCHAIR_ACCESSIBLE (1), false → WHEELCHAIR_INACCESSIBLE (2).
733
+ The OVAPI extension .transit_realtime.ovapiVehicleDescriptor.wheelchairAccessible retains the raw boolean/null value alongside the standard field.
723
734
  ICommonRunsMessagesModel:
724
735
  type: object
725
736
  properties:
@@ -1881,6 +1892,24 @@ components:
1881
1892
  - start
1882
1893
  - end
1883
1894
  description: The period during which the infotext is active
1895
+ repeat:
1896
+ type: object
1897
+ nullable: true
1898
+ description: Optional daily repeat schedule for the infotext
1899
+ properties:
1900
+ enabled:
1901
+ type: boolean
1902
+ description: Whether the infotext repeats on a daily schedule
1903
+ time_start:
1904
+ type: string
1905
+ nullable: true
1906
+ description: Daily repeat start time (HH:MM:SS)
1907
+ time_end:
1908
+ type: string
1909
+ nullable: true
1910
+ description: Daily repeat end time (HH:MM:SS)
1911
+ required:
1912
+ - enabled
1884
1913
  description_text:
1885
1914
  type: object
1886
1915
  properties:
@@ -275,6 +275,7 @@ flowchart TD
275
275
  - `vpPublicCache:$setId:canceled-trips-$gtfsTripId` - JSON jako string s informacemi o zrušeném spoji. Využití v public odjezdech
276
276
  - TTL 1 minuta
277
277
  - Nová datová sada se generuje přibližně jednou za 3 vteřiny a obsahuje všechny RT spoje (aktivní, budoucí a zrušené)
278
+ - Populace `future-trip-*`, `future-vehicle-*` a `canceled-trips-*` sub-klíčů je řízena stavem spoje (před trasou / zrušen) a nesouvisí s logikou deduplikace odjezdů v `/v2/public/departureboards` – ta pracuje nad `gtfsPublicDepartureCache` a tuto cache neovlivňuje
278
279
 
279
280
  ### vpPublicStopTimeCache:*
280
281
 
@@ -294,14 +295,29 @@ flowchart TD
294
295
  ### gtfsPublicDepartureCache:*
295
296
 
296
297
  - Klíč `gtfsPublicDepartureCache:*`, kde `*` je GTFS id zastávky
297
- - Hodnota je sorted set, kde score je unix timestamp odjezdu v sekundách a member jsou relevantní informace o odjezdu
298
+ - Hodnota je sorted set, kde score je unix timestamp odjezdu v sekundách a member je JSON string s informacemi o odjezdu:
299
+ - `stop_id` – GTFS id zastávky
300
+ - `departure_datetime` – plánovaný čas odjezdu (ISO 8601)
301
+ - `arrival_datetime` – plánovaný čas příjezdu (ISO 8601), nebo `null`
302
+ - `route_short_name` – název linky
303
+ - `route_type` – typ dopravy (GTFS route_type)
304
+ - `trip_id` – GTFS id spoje
305
+ - `stop_sequence` – pořadí zastávky v spoji
306
+ - `platform_code` – označení nástupiště, nebo `null`
307
+ - `trip_headsign` – cílová zastávka spoje (nebo `stop_headsign`, pokud je definován)
308
+ - `trip_headsign_icons` – ikony přestupů u cílové zastávky jako řetězec dvouznaková kódů (např. `"MbMcSb"`), nebo `null`
309
+ - `connections` – seznam garantovaných přestupů čekajících na tento spoj, nebo `null`; každý záznam obsahuje:
310
+ - `from_trip_id` – GTFS id spoje, na který se čeká
311
+ - `max_wait_sec` – maximální čekací doba v sekundách
312
+ - Přednačítá se z tabulky `ropidgtfs_precomputed_trip_connections` (původně z `transfers.txt` kde `transfer_type = 1`), JOIN na odjezdy přes `to_trip_id` a `to_stop_id`
313
+ - `wheelchair_accessible` – přístupnost vozidla pro vozíčkáře z GTFS `trips.txt` (`0` = bez informace, `1` = přístupné, `2` = nepřístupné), nebo `null`
298
314
  - Existuje záznam pro každou zastávku v GTFS. Pokud v ní ale není žádný odjezd, je vyplněný pouze jeden prázdný member - detekce validní zastávky bez odjezdu
299
315
  - TTL 7 hodin
300
316
  - Retence dat aktivní, jednou za hodinu se smažou všechny odjezdy starší než 3 hodiny
301
317
  - Jednou za hodinu se vygenerují nové odjezdy pro všechny zastávky v intervalu +5 hodin až +7 hodin, po přenačtení JŘ se přegenerují všechny odjezdy v interval -3 hodiny až +7 hodin
302
318
  - Ukládá se pomocí `ZADD`, čte se pomocí `ZRANGEBYSCORE` (-inf, now + `minutesAfter`)
303
319
  - Využití v public odjezdech
304
- - Využití v endpointu přestupních tabulí
320
+ - Využití v endpointu přestupních tabulí (`/v4/pid/transferboards`)
305
321
 
306
322
  ### Flowchart (refresh)
307
323
 
@@ -529,6 +545,18 @@ flowchart LR
529
545
 
530
546
  link na .drawio [soubor](../../assets/V4Transferboards.drawio)
531
547
 
548
+ ## Cache pro konfiguraci
549
+
550
+ ### config:notPublicVehicles
551
+
552
+ - Klíč `config:notPublicVehicles` (jednoduchý klíč, žádný wildcard)
553
+ - Hodnota je JSON string struktury `INotPublicVehicles`:
554
+ - `tram.registrationNumbers` – seznam evidenčních čísel tramvají bez platného GTFS spoje
555
+ - `road.registrationNumbers` – seznam evidenčních čísel autobusů a trolejbusů bez platného GTFS spoje (`road` pokrývá obě kategorie, protože sdílejí číselnou řadu)
556
+ - `routeIds` – whitelist čísel linek (např. `"861"` pro náhradní autobus X-C při výluce metra C) zobrazovaných i bez platného JŘ spoje
557
+ - TTL žádné – hodnota se přepíše při každém spuštění `SaveStaticDataTask` (po načtení nových JŘ)
558
+ - Zapisuje `NotPublicVehiclesRedisRepository` (IE), čte `TripsRepository` / `PositionsMapper` (IE) a `UpdateRunsGtfsTripIdTask` (IE) pro povolení průchodu vozidel bez GTFS spoje
559
+
532
560
  ## Manuální refresh cache (EnsureCacheTask)
533
561
 
534
562
  `EnsureCacheTask` slouží jako manuální spouštěč obnovy všech 4 caches, jejichž data nejsou real-time obnovována. Po přijetí prázdné zprávy na frontě `vehicle-positions.ropidgtfs.ensureCache` odešle paralelně prázdné zprávy do všech 4 cílových front. Dvě z nich míří do různých workerů (cross-worker routing přes RabbitMQ exchange), dvě míří do stejného workeru (TimetableWorker).
@@ -0,0 +1,9 @@
1
+ {
2
+ "tram": {
3
+ "registrationNumbers": ["2210", "5572"]
4
+ },
5
+ "road": {
6
+ "registrationNumbers": ["1234", "5678", "9999"]
7
+ },
8
+ "routeIds": ["X1", "X2", "X3", "NAD"]
9
+ }
@@ -264,12 +264,14 @@ _:warning: Původním záměrem bylo využití OIS číselníku během zpracová
264
264
  - baseUrl: module.pid.staticData.baseUrl
265
265
  - departure directions url: module.pid.staticData.departuresDirection.path
266
266
  - metro rail track url: module.pid.staticData.metroRailTracks.path
267
+ - not public vehicles url: module.pid.staticData.notPublicVehicles.path
267
268
  - formát dat
268
269
  - protokol: http
269
- - datový typ: csv
270
+ - datový typ: csv (DeparturesDirection, MetroRailTrack), json (NotPublicVehicles)
270
271
  - validační schéma:
271
272
  - [MetroRailTrack](../src/schema-definitions/datasources/static-data/MetroRailTrackJsonSchema.ts)
272
273
  - [DeparturesDirection](../src/schema-definitions/datasources/static-data/DeparturesDirectionsJsonSchema.ts)
274
+ - [NotPublicVehicles](../src/schema-definitions/datasources/static-data/interfaces/NotPublicVehiclesDataInterface.ts) – interface `INotPublicVehicles`
273
275
  - příklad vstupnich dat: viz zdroj data
274
276
  - frekvence stahování
275
277
  - Po nacteni jizdnich radu (fronta: vehicle-positions.ropidgtfs.checkForNewData)
@@ -512,6 +514,9 @@ Všechny tabulky se nachází ve schématu `pid`
512
514
  - [RopidGTFSRunNumbersTransformation](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/integration-engine/ropid-gtfs/transformations/RopidGTFSRunNumbersTransformation.ts)
513
515
  - [RopidGtfsRouteSubAgencyTransformation](https://gitlab.com/operator-ict/golemio/code/modules/pid/-/blob/development/src/integration-engine/ropid-gtfs/transformations/RopidGtfsRouteSubAgencyTransformation.ts)
514
516
  - on top of transformation functionality it also removes duplicates. Rule: If there are multiple rows with same `route_id` and `sub_agency_id` only the first with filled licence number is kept.
517
+ - rozšířené sloupce GTFS souborů (nestandardní rozšíření ROPID)
518
+ - `trips.txt` – sloupec `headsign_icons`: řetězec dvouznakových kódů ikon (např. `"MbSb"`), uložen do `ropidgtfs_trips.headsign_icons`
519
+ - `stop_times.txt` – sloupec `headsign_icons`: přepis na úrovni zastávky, uložen do `ropidgtfs_stop_times.headsign_icons`; má přednost před hodnotou z `trips.txt` pokud je zároveň vyplněn `stop_headsign`
515
520
  - data modely
516
521
  - RopidGTFSMetadataModel `ropidgtfs_metadata`
517
522
  - RopidGTFSAgencyModel `ropidgtfs_agency`
@@ -562,6 +567,7 @@ Všechny tabulky se nachází ve schématu `pid`
562
567
  - RopidGTFSPrecomputedMinMaxStopSequencesModel `ropidgtfs_precomputed_minmax_stop_sequences`
563
568
  - RopidGTFSPrecomputedDeparturesModel `ropidgtfs_precomputed_departures`
564
569
  - RopidGTFSPrecomputedTripScheduleModel `ropidgtfs_precomputed_trip_schedule`
570
+ - RopidGTFSPrecomputedTripConnectionsModel `ropidgtfs_precomputed_trip_connections`
565
571
 
566
572
  #### task _RefreshPrecomputedTables_
567
573
 
@@ -581,6 +587,7 @@ Všechny tabulky se nachází ve schématu `pid`
581
587
  - RopidGTFSPrecomputedMinMaxStopSequencesModel `ropidgtfs_precomputed_minmax_stop_sequences`
582
588
  - RopidGTFSPrecomputedDeparturesModel `ropidgtfs_precomputed_departures`
583
589
  - RopidGTFSPrecomputedTripScheduleModel `ropidgtfs_precomputed_trip_schedule`
590
+ - RopidGTFSPrecomputedTripConnectionsModel `ropidgtfs_precomputed_trip_connections`
584
591
 
585
592
  #### task _RefreshPublicGtfsDepartureCacheTask_
586
593
 
@@ -596,8 +603,10 @@ Task se stará o aktualizaci cache pro public odjezdy. Pouští se pravidelně c
596
603
  - ROPID FTP
597
604
  - transformace
598
605
  - [PublicDepartureCacheTransformation](../src/integration-engine/ropid-gtfs/transformations/PublicDepartureCacheTransformation.ts)
606
+ - výsledný cache záznam obsahuje pole `connections` (garantované přestupy – přednačtené z `ropidgtfs_precomputed_trip_connections`, původně z `transfers.txt` kde `transfer_type = 1`) a pole `wheelchair_accessible` (přístupnost vozidla pro vozíčkáře z GTFS `trips.txt`)
607
+ - pole `trip_headsign_icons`: pokud je pro danou zastávku spoje vyplněn `stop_headsign`, použije se `stop_headsign_icons` z `ropidgtfs_stop_times`; jinak se použije `headsign_icons` z `ropidgtfs_trips`; výsledek je řetězec dvouznakových kódů (např. `"MbMcSb"`) nebo `null`
599
608
  - data modely
600
- - RopidGTFSPrecomputedDeparturesModel `ropidgtfs_precomputed_departures`
609
+ - RopidGTFSPrecomputedDeparturesModel `ropidgtfs_precomputed_departures` (obsahuje JOIN na `ropidgtfs_precomputed_trip_connections_tmp` přes `to_trip_id` a `to_stop_id`)
601
610
 
602
611
  #### task _SaveStaticData_
603
612
 
@@ -613,9 +622,19 @@ Task se stará o aktualizaci statickych dat. Pouští se po dokončení načten
613
622
  - transformace
614
623
  - [DeparturesDirectionTransformation](../src/integration-engine/ropid-gtfs/workers/timetables/tasks/transformations/DeparturesDirectionTransformation.ts)
615
624
  - [MetroRailtrackDataTransformation](../src/integration-engine/ropid-gtfs/workers/timetables/tasks/transformations/MetroRailtrackDataTransformation.ts)
625
+ - `NotPublicVehicles` – data se ukládají přímo do cache klíče `config:notPublicVehicles` přes `NotPublicVehiclesRedisRepository` (žádná DB tabulka)
616
626
  - data modely
617
627
  - RopidDeparturesDirections `ropid_departures_directions`
618
628
  - RopidGtfsMetroRailtrackGps `ropidgtfs_metro_railtrack_gps`
629
+ - Cache `config:notPublicVehicles` – JSON blob struktury `INotPublicVehicles`:
630
+ ```json
631
+ {
632
+ "tram": { "registrationNumbers": ["string"] },
633
+ "road": { "registrationNumbers": ["string"] },
634
+ "routeIds": ["string"]
635
+ }
636
+ ```
637
+ `road` pokrývá autobusy i trolejbusy (evidenční čísla se mohou překrývat s tramvajemi, proto jsou oddělena). `routeIds` je whitelist číselných identifikátorů náhradních nebo dočasných linek (např. náhradní autobus za metro při výluce nebo mimořádné události), které se mají zobrazovat i bez platného JŘ spoje.
619
638
 
620
639
  #### task _EnsureCacheTask_
621
640
 
@@ -818,7 +837,11 @@ Worker má na starost zpracování a transformaci polohových dat, výpočet zpo
818
837
  - vstupní rabbitmq fronta
819
838
  - název: vehicle-positions.vehiclepositions.updateRunsGTFSTripId
820
839
  - TTL: 5 minut
821
- - parametry: `{ run, run_message }`
840
+ - parametry: `{ run, run_message, isNotPublic?, gtfs_route_type? }`
841
+ - `run` - běh vozidla (ICommonRunsModel s volitelným gtfs_route_type)
842
+ - `run_message` - zpráva o pozici vozidla
843
+ - `isNotPublic` - volitelný příznak, zda se jedná o neveřejné vozidlo (např. náhradní autobus)
844
+ - `gtfs_route_type` - volitelný GTFS typ vozidla (0=tram, 3=bus, atd.) pro správné mapování typu u ad-hoc vozidel
822
845
  - validační schéma: [UpdateRunsGtfsTripIdSchema](../src/integration-engine/vehicle-positions/workers/vehicle-positions/schema/UpdateRunsGtfsTripIdSchema.ts)
823
846
  - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
824
847
  - název: vehicle-positions.vehiclepositions.updateDelay
@@ -1082,6 +1105,18 @@ Worker má na starost generování souborů s realtime daty pro `gtfsrt` endpoin
1082
1105
  - VPTripsModel `vehiclepositions_trips`
1083
1106
  - VPPositionsModel `vehiclepositions_positions`
1084
1107
 
1108
+ **`wheelchairAccessible` ve VehicleDescriptor**
1109
+
1110
+ Pole `wheelchairAccessible` je součástí standardního `VehicleDescriptor` ve feedech `vehicle_positions.pb` a `pid_feed.pb`:
1111
+
1112
+ | Interní hodnota | Proto enum |
1113
+ |---|---|
1114
+ | `null` | `WHEELCHAIR_ACCESSIBLE_UNSPECIFIED = 0` |
1115
+ | `true` | `WHEELCHAIR_ACCESSIBLE = 1` |
1116
+ | `false` | `WHEELCHAIR_INACCESSIBLE = 2` |
1117
+
1118
+ Zdrojem je pole `wheelchair_accessible` z tabulky `vehiclepositions_trips` (přenášené přes `IGtfsRtTripDto`). Vedle standardního pole zůstává zachováno rozšíření `.transit_realtime.ovapiVehicleDescriptor.wheelchairAccessible` s původní boolean/null hodnotou.
1119
+
1085
1120
  **Určení zpoždění v trip_updates.pb**
1086
1121
 
1087
1122
  Predikce odjezdů probíhá podle vzorce:
@@ -1187,6 +1222,10 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1187
1222
  - data modely
1188
1223
  - JISEventsModel `jis_events`
1189
1224
  - JISEventsRopidGTFSRoutesModel `jis_events_ropidgtfs_routes`
1225
+ - poznámky k datovému modelu
1226
+ - pole `effects` je pole až 3 unikátních řetězců; v GTFS-RT `Alert.effect` se použije pouze `effects[0]`, zbývající hodnoty jsou dostupné pouze v custom-format exportu
1227
+ - pole `cause_detail` je volný text zpřesňující příčinu události; může být `null`
1228
+ - pole `cause` obsahuje překlady do češtiny i angličtiny; anglické hodnoty jsou zahrnuty i ve výstupu GTFS-RT alert feedu
1190
1229
 
1191
1230
  #### _task: RefreshJISInfotextsTask_
1192
1231
 
@@ -1281,7 +1320,7 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1281
1320
  - retence dat
1282
1321
  - jízdní řády se generují 1-2x denně na 14 dní dopředu
1283
1322
  - polohová data si uchováváme 24 hodin (30 minut od poslední aktualizace, poté v historických tabulkách)
1284
- - popis vozidel si uchováváme 24 hodin
1323
+ - popis vozidel se nepromazává přetrvávají do přepsání novými daty (fixní TTL bylo odstraněno)
1285
1324
  - preset logy si uchováváme 8 hodin
1286
1325
  - JIS události a infotexty si uchováváme neomezeně
1287
1326
 
@@ -1424,6 +1463,12 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1424
1463
 
1425
1464
  - zdrojové tabulky
1426
1465
  - `ropidgtfs_precomputed_departures`, `ropidgtfs_stops`, `ropidgtfs_cis_stops`, `jis_infotexts`, `jis_infotexts_ropidgtfs_stops`, `ropid_departures_directions`, `vehiclepositions_positions`, `vehiclepositions_trips`
1466
+ - odpověď obsahuje hlavičku `X-Golemio-Preset-Metadata: airConditionPossible=0|1`
1467
+ - `1` pokud byl zadán query parametr `airCondition` s pravdivou hodnotou, `0` jinak
1468
+ - slouží monitorovacím systémům (preset systémy monitorovacího centra ROPID) k detekci aktivního filtrování dle klimatizace
1469
+ - kód nástupiště (`platform_code`)
1470
+ - **vlaky**: preferuje se CIS hodnota `cis_stop_platform_code` uložená z MPVNet zpráv (`PlatformCodeResolver`); MPVNet atribut `$.stan` je před uložením oříznut na první platný segment (viz [parsování `stan` u vlaků](../processing/input_realtime_data/http_mpvnet.md#parsování-stanoviště-stan-u-vlaků))
1471
+ - **ostatní typy**: používá se GTFS `platform_code` ze `stop_times.txt`
1427
1472
 
1428
1473
  ### PID Departure Boards v3
1429
1474
 
@@ -1431,6 +1476,42 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1431
1476
 
1432
1477
  - načte odjezdy pro přestupní tabule ve vozidlech a aktivní infotexty exportované z aplikace VYMI (JIS) Infotexty
1433
1478
 
1479
+ ### PID Departure Boards v4
1480
+
1481
+ #### _/v4/pid/transferboards_
1482
+
1483
+ - načte odjezdy pro přestupní tabule ve vozidlech na základě aktuální polohy vozidla a aktivní infotexty exportované z aplikace VYMI (JIS) Infotexty
1484
+ - parametry
1485
+ - `aswId` + `vehicleRegistrationNumber` + `routeType` – identifikace zastávky a vozidla přes ASW číselník (vzájemně se vylučuje s `cisId`+`tripNumber`)
1486
+ - `cisId` + `tripNumber` – identifikace zastávky a spoje přes CIS číselník (zatím neimplementováno, vrací 501)
1487
+ - `timeFrom` – volitelný ISO8601 čas příjezdu (pokud není zadán, použije se reálný čas příjezdu z RT dat)
1488
+ - `limit` – volitelný počet odjezdů (výchozí 8, max 30)
1489
+ - cachováno na 5 sekund (stale-while-revalidate 5 sekund)
1490
+ - zdrojové cache záznamy
1491
+ - `gtfsStopsCache:*` – převod ASW node ID na GTFS stop_id
1492
+ - `gtfsDelayComputation:*` – zjištění zastávek spoje a predikovaného času příjezdu
1493
+ - `vpPublicCache:*` – aktuální poloha a zpoždění vozidla
1494
+ - `gtfsPublicDepartureCache:*` – statické odjezdy ze zastávek (vč. `connections` a `wheelchair_accessible`)
1495
+ - `vpPublicStopTimeCache:*` – live zastávkové časy pro spoje se známou polohou
1496
+ - `jisCache:*` – aktivní infotexty pro dané zastávky
1497
+ - načítání odjezdů z cache (`gtfsPublicDepartureCache`)
1498
+ - z každé zastávky se načte `max(80, min(120, limit × 10))` položek v časovém okně `[plannedTimeFrom − 61 min, plannedTimeFrom + 60 min + delay]`; lookback 61 minut zajišťuje, že se zachytí i navazující spoj, jehož plánovaný odjezd je v minulosti, ale díky vlastnímu zpoždění (až 60 minut) dorazí na zastávku až po příjezdu aktuálního vozidla
1499
+ - ihned po načtení se aplikuje pre-filter: odjezdy autobusů, tramvají a trolejbusů ze zastávek s jiným názvem než aktuální zastávka jsou zahozeny; metro/vlak/přívoz/lanovka procházejí vždy; odjezdy s neprázdným polem `connections[]` jsou zachovány bez ohledu na název zastávky (potenciální garantovaný přestup)
1500
+ - garantované přestupy (`is_guaranteed_transfer`)
1501
+ - označují odjezdy, které na příjezd aktuálního spoje čekají – detekováno z pole `connections` v `gtfsPublicDepartureCache`, kde `from_trip_id` odpovídá aktuálnímu spoji a `arrivalTime < departure_datetime + max_wait_sec`
1502
+ - zobrazované minuty u garantovaného přestupu jsou nastaveny na čas příjezdu aktuálního spoje (ne na plánovaný odjezd navazujícího spoje)
1503
+ - garantované přestupy jsou vyjmuty z filtru opačného směru a filtru podskupiny linky – jsou přidány do `tripIdsToKeep` před spuštěním `findRelevantTripIdsFromLines`, takže projdou bez ohledu na zastávkovou sekvenci
1504
+ - typy "vždy zobrazit" (metro, vlak, přívoz, lanovka) filtr `findRelevantTripIdsFromLines` zcela přeskakují
1505
+ - dostupnost pro vozíčkáře (`is_wheelchair_accessible`)
1506
+ - **metro**: určeno výhradně podle `wheelchair_boarding` zastávky (hodnota `1` = přístupná)
1507
+ - **ostatní typy dopravy**: primárně z RT dat vozidla (`detailed_info.is_wheelchair_accessible`); pokud RT data nejsou k dispozici, použije se GTFS příznak `wheelchair_accessible` z `trips.txt` (`1` = přístupné vozidlo)
1508
+ - seskupování a omezení výstupu (`TransferDepartureCacheTransformation`)
1509
+ - **metro**: seskupuje se podle `route_short_name + stop_id`; na jeden záznam výstupu připadají až 2 hodnoty v poli `departure_timestamp.minutes[]`
1510
+ - **ostatní typy**: seskupuje se podle `route_short_name + direction_id`; na skupinu připadají nejvýše 2 samostatné záznamy odjezdů; `direction_id` se získává z cache poloh vozidel (klíč `route_short_name + trip_headsign`), výchozí hodnota je `0`
1511
+ - konfigurace filtrování opačného směru (backtracking)
1512
+ - `module.pid.vehicle-positions.transferboards.isOppositeDirectionFilterStopNameStrict` (boolean, výchozí `true`) – pokud `true`, zastávka je považována za "zpětnou" pouze pokud se shoduje `stop_id` i `stop_name`; pokud `false`, stačí shoda `stop_id`
1513
+ - `module.pid.vehicle-positions.transferboards.countPreviousStopsToAllow` (integer, výchozí `0`) – kolik předchozích zastávek aktuálního spoje smí kandidátní spoj sdílet ve svých nadcházejících zastávkách, než je považován za zpětný směr a odfiltrován; `0` znamená žádná shoda není povolena
1514
+
1434
1515
  #### _/v3/pid/infotexts_
1435
1516
 
1436
1517
  - načte aktivní infotexty exportované z aplikace VYMI (JIS) Infotexty
@@ -1478,4 +1559,20 @@ Worker má na starost stahování VYMI (JIS) událostí a infotextů, jejich tra
1478
1559
  - podle názvů linek a jak daleko do budoucnosti se mají odjezdy navracet
1479
1560
  - limitování počtu odjezdů v každé skupině
1480
1561
  - EP je optimalizován pro vyšší zátěž z mobilní aplikace PID lítačka - požadavek do databáze z OG pouze v případě nutnosti obnovit cache s vehicle descriptory (klimatizace, usb nabíječky), jinak je vše z Redisu
1562
+ - deduplikace odjezdů (pro seskupení "jeden za linka+směr") se provádí podle klíče `route_id + trip_headsign + platform_code`; toto se liší od původního přístupu deduplikace podle `stop_id` a správně pokrývá situace, kdy jeden ASW uzel odpovídá více GTFS `stop_id`
1563
+ - dostupnost pro vozíčkáře (`is_wheelchair_accessible`) se určuje v pořadí priority:
1564
+ 1. RT descriptor vozidla (`detailed_info.is_wheelchair_accessible` z vehicle positions)
1565
+ 2. GTFS statický příznak `wheelchair_accessible` z `trips.txt` (`1` = přístupné), pokud RT data nejsou k dispozici
1481
1566
  - je použit `CompressionByDefaultMiddleware` a odpovědi jsou tak na output gateway komprimovány i pokud klient explicitně nepovolí komprimaci vhodnou hodnotou hlavičky `Accept-Encoding` (lze však komprimaci explicitně zakázat hodnotou `identity`)
1567
+
1568
+ ### JIS v1
1569
+
1570
+ #### _/v1/jis/events/custom-format_
1571
+
1572
+ - vrátí seznam publikovaných událostí ve vlastním formátu pro externí konzumenty (fallback endpoint pro webhooky)
1573
+ - parametry
1574
+ - `displayPeriodStart` / `displayPeriodEnd` – filtrování podle překryvu zobrazovacího okna události s požadovaným rozsahem (ISO 8601)
1575
+ - `organizationNames` – filtrování podle organizace (pole řetězců)
1576
+ - `type` – filtrování podle typu události (`INCIDENT`, `DISRUPTION`, `SERVICE_CHANGE`)
1577
+ - zdrojové tabulky: `jis_events`, `jis_events_ropidgtfs_routes`
1578
+ - formát odpovědi: viz schéma `EventCustomFormat` v [openapi-output.yaml](./openapi-output.yaml)
package/docs/jis/index.md CHANGED
@@ -246,3 +246,20 @@ flowchart TB
246
246
  ```
247
247
 
248
248
  Zdroj a formát dat pro aktivní stahování jsou dále více popsány v implementační dokumentaci ([události](../implementation_documentation.md#jis-events), [infotexty](../implementation_documentation.md#jis-infotexts)), stejně tak jako [worker a tasky](../implementation_documentation.md#jisworker) a popis [uložení dat](../implementation_documentation.md#uložení-dat) včetně databázového schema a popisu retence.
249
+
250
+ ## Datový model událostí — vybraná pole
251
+
252
+ ### `cause_detail`
253
+
254
+ Volitelné textové upřesnění příčiny události (`cause_detail`). Může být `null`. Dostupné v custom-format exportu (`/v1/jis/events/custom-format`) i v GTFS-RT alert feedu jako rozšíření. Struktura:
255
+ ```json
256
+ { "cs": "Nehoda na křižovatce", "en": null }
257
+ ```
258
+
259
+ ### `cause` — anglický překlad
260
+
261
+ Pole `cause` obsahuje překlad příčiny události do češtiny i do angličtiny. Anglická hodnota je zahrnuta i ve výstupu GTFS-RT alert feedu (pole `Alert.cause` v `pid_feed.pb` i `alerts.pb`).
262
+
263
+ ### `effects` (pole příčin dopadu)
264
+
265
+ Pole `effects` může obsahovat 1–3 unikátní řetězcové hodnoty. Pouze `effects[0]` se mapuje na standardní GTFS-RT `Alert.effect`; zbývající hodnoty jsou dostupné výhradně v custom-format exportu.
@@ -753,6 +753,24 @@ components:
753
753
  - start
754
754
  - end
755
755
  description: The period during which the infotext is active
756
+ repeat:
757
+ type: object
758
+ nullable: true
759
+ description: Optional daily repeat schedule for the infotext
760
+ properties:
761
+ enabled:
762
+ type: boolean
763
+ description: Whether the infotext repeats on a daily schedule
764
+ time_start:
765
+ type: string
766
+ nullable: true
767
+ description: Daily repeat start time (HH:MM:SS)
768
+ time_end:
769
+ type: string
770
+ nullable: true
771
+ description: Daily repeat end time (HH:MM:SS)
772
+ required:
773
+ - enabled
756
774
  description_text:
757
775
  type: object
758
776
  properties:
@@ -919,6 +937,7 @@ components:
919
937
  "start": "2024-12-05T11:12:00.000Z",
920
938
  "end": "2025-01-30T23:00:00.000Z"
921
939
  },
940
+ "repeat": null,
922
941
  "description_text": {
923
942
  "cs": "Test po aktualizaci Node.js",
924
943
  "en": "This is a test"
@@ -960,5 +979,32 @@ components:
960
979
  },
961
980
  "created_timestamp": "2024-11-08T10:44:34.701Z",
962
981
  "last_modified_timestamp": "2024-11-08T10:44:34.701Z"
982
+ },
983
+ {
984
+ "id": "a3f7c912-1e4b-4d8a-b6f0-9c2d7e5a0b3f",
985
+ "severity_level": "WARNING",
986
+ "display_type": "GENERAL",
987
+ "active_period": {
988
+ "start": "2024-12-01T00:00:00.000Z",
989
+ "end": null
990
+ },
991
+ "repeat": {
992
+ "enabled": true,
993
+ "time_start": "23:00:00",
994
+ "time_end": "04:30:00"
995
+ },
996
+ "description_text": {
997
+ "cs": "V nočních hodinách omezený provoz.",
998
+ "en": "Limited service during night hours."
999
+ },
1000
+ "informed_entity": {
1001
+ "stops": [
1002
+ {
1003
+ "id": "U72Z1P"
1004
+ }
1005
+ ]
1006
+ },
1007
+ "created_timestamp": "2024-12-01T00:00:00.000Z",
1008
+ "last_modified_timestamp": "2024-12-01T00:00:00.000Z"
963
1009
  }
964
1010
  ]
@@ -92,6 +92,27 @@
92
92
  ```
93
93
 
94
94
  ## Vlaky
95
+
96
+ ### Parsování stanoviště (`stan`) u vlaků
97
+
98
+ Atribut `stan` v elementu `<zast>` u vlaků může obsahovat složený řetězec ve formátu `část1/část2` nebo `část1 část2` (např. `5S/22S`, `-/6`, `2/3`). Jako kanonický kód nástupiště se použije **první platný segment** – první token oddělený lomítkem nebo mezerou, pokud není prázdný nebo `-`.
99
+
100
+ Příklady výsledků po parsování:
101
+
102
+ | Vstup (`stan`) | Výsledný `platform_code` |
103
+ |---|---|
104
+ | `1/3` | `1` |
105
+ | `-/BUS` | `BUS` |
106
+ | `2/100V` | `2` |
107
+ | `5A/- A C` | `5A` |
108
+ | `5S/22S` | `5S` |
109
+
110
+ Parsování provádí `MpvStopParser.parsePlatformCode()`. Výsledný kód je uložen jako `cis_stop_platform_code` v tabulce `vehiclepositions_positions` a na výstupu se pro vlaky preferuje před GTFS `platform_code` (viz `PlatformCodeResolver`).
111
+
112
+ ### Zprávy s informací o nástupišti jako syntetická poloha
113
+
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
+
95
116
  ```xml
96
117
  <?xml version="1.0" encoding="utf-8"?>
97
118
 
@@ -13,6 +13,7 @@
13
13
  - duplikace vlakových spojů a pozic podle block id (určení tracking podle cis stop id)
14
14
  - obohacení spojů GTFS daty (včetně oběhu a kmenové linky)
15
15
  - upsert asociovaných pozic
16
+ - **syntetická poloha z informace o nástupišti**: pokud zpráva obsahuje atribut `$.stan` pro budoucí zastávku a vlak ještě nemá aktivní RT polohu, vytvoří se syntetická pozice ve stavu `before_track` pro tuto zastávku – umožňuje zobrazit kód nástupiště před fyzickým příjezdem vlaku
16
17
  - spoje se pošlou do fronty `updateDelay`
17
18
  - updateDelay
18
19
  - opět duplikace vlakových spojů, upsert asociovaných pozic