@golemio/fypr 1.7.2-dev.2607926676 → 1.8.0-dev.2611358386

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 (35) hide show
  1. package/db/example/06_information_panels_presets.sql +67 -0
  2. package/db/migrations/postgresql/20260618085629-add-information-panels-state-index.js +16 -0
  3. package/db/migrations/postgresql/sqls/20260618085629-add-information-panels-state-index-down.sql +2 -0
  4. package/db/migrations/postgresql/sqls/20260618085629-add-information-panels-state-index-up.sql +6 -0
  5. package/dist/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.d.ts +1 -0
  6. package/dist/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.js +17 -2
  7. package/dist/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.js.map +1 -1
  8. package/dist/output-gateway/fypr/data-access/FyprElementRepository.d.ts +2 -2
  9. package/dist/output-gateway/fypr/data-access/FyprElementRepository.js.map +1 -1
  10. package/dist/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.d.ts +1 -0
  11. package/dist/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.js +27 -17
  12. package/dist/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.js.map +1 -1
  13. package/dist/output-gateway/fypr/routers/v1/validators/InformationPanelsOnlyValidator.d.ts +4 -0
  14. package/dist/output-gateway/fypr/routers/v1/validators/InformationPanelsOnlyValidator.js +16 -0
  15. package/dist/output-gateway/fypr/routers/v1/validators/InformationPanelsOnlyValidator.js.map +1 -0
  16. package/dist/schema-definitions/const.d.ts +4 -0
  17. package/dist/schema-definitions/const.js +4 -1
  18. package/dist/schema-definitions/const.js.map +1 -1
  19. package/dist/schema-definitions/data-sources/DBFYPRElementsJSONSchema.js +2 -2
  20. package/dist/schema-definitions/data-sources/DBFYPRElementsJSONSchema.js.map +1 -1
  21. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRElement.d.ts +2 -1
  22. package/dist/schema-definitions/index.d.ts +2 -1
  23. package/dist/schema-definitions/index.js +3 -1
  24. package/dist/schema-definitions/index.js.map +1 -1
  25. package/dist/schema-definitions/models/AbstractElementModel.d.ts +4 -7
  26. package/dist/schema-definitions/models/AbstractElementModel.js +1 -1
  27. package/dist/schema-definitions/models/AbstractElementModel.js.map +1 -1
  28. package/dist/schema-definitions/models/interfaces/IElement.d.ts +2 -1
  29. package/dist/schema-definitions/models/interfaces/fyprElementStates.d.ts +2 -0
  30. package/dist/schema-definitions/models/interfaces/fyprElementStates.js +6 -0
  31. package/dist/schema-definitions/models/interfaces/fyprElementStates.js.map +1 -0
  32. package/docs/asyncapi.yaml +3 -5
  33. package/docs/implementation_documentation.md +11 -1
  34. package/docs/openapi-output.yaml +63 -48
  35. package/package.json +1 -1
@@ -25,6 +25,7 @@ INSERT INTO fypr.information_panels (
25
25
  asw_stop_id,
26
26
  construction_type,
27
27
  panel_size,
28
+ device_id,
28
29
  jis_graphic
29
30
  ) VALUES (
30
31
  'cfcdf084-bcf4-4507-9b7f-94d55d8acbec'::uuid,
@@ -53,6 +54,7 @@ INSERT INTO fypr.information_panels (
53
54
  'thmp32',
54
55
  'V přístřešku',
55
56
  'v6',
57
+ 'DEV-HRADCANSKA-B',
56
58
  true
57
59
  ), (
58
60
  'eb92aede-2ec6-48d9-a7ef-865b774e1270'::uuid,
@@ -81,9 +83,74 @@ INSERT INTO fypr.information_panels (
81
83
  NULL,
82
84
  'Ostatní',
83
85
  NULL,
86
+ NULL,
84
87
  true
85
88
  );
86
89
 
90
+ -- Rows without presets, used by the state / hasDeviceId filter tests. Cover the remaining state
91
+ -- enum values and a mix of device_id presence (two non-null, one null).
92
+ INSERT INTO fypr.information_panels (
93
+ id,
94
+ document_id,
95
+ uid,
96
+ kind,
97
+ "name",
98
+ state,
99
+ source_created_at,
100
+ source_updated_at,
101
+ source_published_at,
102
+ created_at,
103
+ updated_at,
104
+ stop_name,
105
+ device_id,
106
+ jis_graphic
107
+ ) VALUES (
108
+ 'b1aa0001-0000-4000-8000-000000000001'::uuid,
109
+ 'filter0001unplanned00000',
110
+ 'b1aa0001-0000-4000-8000-aaaaaaaaaaa1',
111
+ 'informační panel',
112
+ 'Filtr Neplánováno',
113
+ 'Neplánováno',
114
+ '2026-05-07 10:00:00.000',
115
+ '2026-05-07 10:00:00.000',
116
+ '2026-05-07 10:00:00.000',
117
+ '2026-05-07 10:00:00.000',
118
+ '2026-05-07 10:00:00.000',
119
+ 'Filtr Neplánováno',
120
+ 'DEV-NEPLAN-001',
121
+ false
122
+ ), (
123
+ 'b1aa0002-0000-4000-8000-000000000002'::uuid,
124
+ 'filter0002cancelled00000',
125
+ 'b1aa0002-0000-4000-8000-aaaaaaaaaaa2',
126
+ 'informační panel',
127
+ 'Filtr Zrušeno',
128
+ 'Zrušeno',
129
+ '2026-05-07 10:01:00.000',
130
+ '2026-05-07 10:01:00.000',
131
+ '2026-05-07 10:01:00.000',
132
+ '2026-05-07 10:01:00.000',
133
+ '2026-05-07 10:01:00.000',
134
+ 'Filtr Zrušeno',
135
+ 'DEV-ZRUSENO-002',
136
+ false
137
+ ), (
138
+ 'b1aa0003-0000-4000-8000-000000000003'::uuid,
139
+ 'filter0003inprep00000000',
140
+ 'b1aa0003-0000-4000-8000-aaaaaaaaaaa3',
141
+ 'informační panel',
142
+ 'Filtr V přípravě',
143
+ 'V přípravě',
144
+ '2026-05-07 10:02:00.000',
145
+ '2026-05-07 10:02:00.000',
146
+ '2026-05-07 10:02:00.000',
147
+ '2026-05-07 10:02:00.000',
148
+ '2026-05-07 10:02:00.000',
149
+ 'Filtr V přípravě',
150
+ NULL,
151
+ false
152
+ );
153
+
87
154
  INSERT INTO fypr.information_panels_presets (
88
155
  id,
89
156
  route_name,
@@ -0,0 +1,16 @@
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, '20260618085629-add-information-panels-state-index-up.sql');
13
+
14
+ exports.down = (db) => runSql(db, '20260618085629-add-information-panels-state-index-down.sql');
15
+
16
+ exports._meta = { version: 1 };
@@ -0,0 +1,2 @@
1
+ DROP INDEX information_panels_state_idx;
2
+ DROP INDEX information_panels_device_id_idx;
@@ -0,0 +1,6 @@
1
+ CREATE INDEX information_panels_state_idx
2
+ ON information_panels USING btree (state);
3
+
4
+ CREATE INDEX information_panels_device_id_idx
5
+ ON information_panels USING btree (device_id)
6
+ WHERE device_id IS NOT NULL;
@@ -12,5 +12,6 @@ export declare class V1FyprElementKindsController {
12
12
  private getRepositoryByKind;
13
13
  getIndex(basePath: string): RequestHandler;
14
14
  getAll: (req: Request, res: Response, next: NextFunction) => Promise<void>;
15
+ private buildInformationPanelWhere;
15
16
  getOne: (req: Request, res: Response, next: NextFunction) => Promise<void>;
16
17
  }
@@ -19,6 +19,7 @@ const _sch_1 = require("../../../../schema-definitions");
19
19
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
20
20
  const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
21
21
  const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
22
+ const sequelize_1 = require("@golemio/core/dist/shared/sequelize");
22
23
  const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
23
24
  let V1FyprElementKindsController = class V1FyprElementKindsController {
24
25
  constructor(repositories, informationPanelOutputTransformation, config) {
@@ -26,9 +27,9 @@ let V1FyprElementKindsController = class V1FyprElementKindsController {
26
27
  this.informationPanelOutputTransformation = informationPanelOutputTransformation;
27
28
  this.getAll = async (req, res, next) => {
28
29
  try {
29
- const { kind, limit, offset, jis, scopes } = (0, express_validator_1.matchedData)(req);
30
+ const { kind, limit, offset, jis, scopes, state, hasDeviceId } = (0, express_validator_1.matchedData)(req);
30
31
  const effectiveLimit = req.query.limit !== undefined ? Number(limit) : this.defaultLimit;
31
- const where = jis !== undefined && kind === "information-panels" ? { jis_graphic: jis } : undefined;
32
+ const where = kind === "information-panels" ? this.buildInformationPanelWhere({ jis, state, hasDeviceId }) : {};
32
33
  const embeds = scopes ? [scopes] : undefined;
33
34
  const data = await this.getRepositoryByKind(kind).getAll({
34
35
  limit: effectiveLimit,
@@ -87,6 +88,20 @@ let V1FyprElementKindsController = class V1FyprElementKindsController {
87
88
  };
88
89
  return (_req, res) => res.status(200).json(response);
89
90
  }
91
+ buildInformationPanelWhere(filters) {
92
+ const where = {};
93
+ if (filters.jis !== undefined) {
94
+ where.jis_graphic = filters.jis;
95
+ }
96
+ if (filters.state !== undefined) {
97
+ const states = Array.isArray(filters.state) ? filters.state : [filters.state];
98
+ where.state = { [sequelize_1.Op.in]: states };
99
+ }
100
+ if (filters.hasDeviceId !== undefined) {
101
+ where.device_id = filters.hasDeviceId ? { [sequelize_1.Op.not]: null } : { [sequelize_1.Op.is]: null };
102
+ }
103
+ return where;
104
+ }
90
105
  };
91
106
  exports.V1FyprElementKindsController = V1FyprElementKindsController;
92
107
  exports.V1FyprElementKindsController = V1FyprElementKindsController = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"V1FyprElementKindsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"V1FyprElementKindsController.js","sourceRoot":"","sources":["../../../../../src/output-gateway/fypr/controllers/v1/V1FyprElementKindsController.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { FyprEmbedConfig } from "../../../schema-definitions/index";
2
2
  import { ILogger } from "@golemio/core/dist/helpers";
3
3
  import { IDatabaseConnector } from "@golemio/core/dist/helpers/data-access/postgres/IDatabaseConnector";
4
4
  import { AbstractBasicRepository } from "@golemio/core/dist/helpers/data-access/postgres/repositories/AbstractBasicRepository";
5
- import { ModelAttributes } from "@golemio/core/dist/shared/sequelize";
5
+ import { ModelAttributes, WhereOptions } from "@golemio/core/dist/shared/sequelize";
6
6
  export declare class FyprElementRepository<T> extends AbstractBasicRepository {
7
7
  readonly schema = "fypr";
8
8
  readonly tableName: string;
@@ -17,7 +17,7 @@ export declare class FyprElementRepository<T> extends AbstractBasicRepository {
17
17
  getAll(options?: {
18
18
  limit?: number;
19
19
  offset?: number;
20
- where?: Record<string, unknown>;
20
+ where?: WhereOptions;
21
21
  embeds?: string[];
22
22
  }): Promise<T[]>;
23
23
  getOne(id: string): Promise<T | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"FyprElementRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/fypr/data-access/FyprElementRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FyprElementRepository.js","sourceRoot":"","sources":["../../../../src/output-gateway/fypr/data-access/FyprElementRepository.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,6 @@ export declare class V1FyprElementKindsRouter extends AbstractRouter {
6
6
  private controller;
7
7
  constructor();
8
8
  protected initRoutes(): void;
9
+ private informationPanelsQueryMiddleware;
9
10
  }
10
11
  export declare const v1FyprElementKindsRouter: AbstractRouter;
@@ -4,12 +4,14 @@ exports.v1FyprElementKindsRouter = exports.V1FyprElementKindsRouter = void 0;
4
4
  const Di_1 = require("../../../ioc/Di");
5
5
  const FYPROGContainerTokens_1 = require("../../../ioc/FYPROGContainerTokens");
6
6
  const constants_1 = require("../../../shared/constants");
7
+ const index_1 = require("../../../../schema-definitions/index");
7
8
  const CoreToken_1 = require("@golemio/core/dist/helpers/ioc/CoreToken");
8
9
  const AbstractRouter_1 = require("@golemio/core/dist/helpers/routing/AbstractRouter");
9
10
  const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
10
11
  const ioc_1 = require("@golemio/core/dist/output-gateway/ioc");
11
12
  const express_1 = require("@golemio/core/dist/shared/express");
12
13
  const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
14
+ const InformationPanelsOnlyValidator_1 = require("./validators/InformationPanelsOnlyValidator");
13
15
  class V1FyprElementKindsRouter extends AbstractRouter_1.AbstractRouter {
14
16
  constructor() {
15
17
  super("v1", "fypr/elements");
@@ -26,32 +28,40 @@ class V1FyprElementKindsRouter extends AbstractRouter_1.AbstractRouter {
26
28
  const kindParamMiddleware = (0, express_validator_1.param)("kind")
27
29
  .isIn(constants_1.fyprElementKinds)
28
30
  .withMessage(`kind must be one of: ${constants_1.fyprElementKinds.join(", ")}`);
29
- const jisQueryMiddleware = (0, express_validator_1.query)("jis")
31
+ this.router.get("/", cacheMiddleware, this.controller.getIndex(`/${this.version}/${this.path}`));
32
+ this.router.get("/:kind", kindParamMiddleware, ...this.informationPanelsQueryMiddleware(), (0, Validation_1.paginationLimitMiddleware)("FyprElementKindsRouter"), Validation_1.checkErrors, cacheMiddleware, this.controller.getAll);
33
+ this.router.get("/:kind/:id", kindParamMiddleware, (0, express_validator_1.param)("id").isUUID(), Validation_1.checkErrors, cacheMiddleware, this.controller.getOne);
34
+ }
35
+ // Optional query filters that only apply to the information-panels listing. checkExact (in
36
+ // checkErrors) registers them so they pass the no-unknown-params guard once validated.
37
+ informationPanelsQueryMiddleware() {
38
+ const jis = (0, express_validator_1.query)("jis")
30
39
  .optional()
31
- .custom((_value, { req }) => {
32
- if (req.params?.["kind"] !== "information-panels") {
33
- throw new Error("jis is only supported for information-panels");
34
- }
35
- return true;
36
- })
40
+ .custom(InformationPanelsOnlyValidator_1.InformationPanelsOnlyValidator.field("jis"))
37
41
  .bail()
38
42
  .isBoolean({ strict: false })
39
43
  .withMessage("jis must be a boolean")
40
44
  .toBoolean();
41
- const scopesQueryMiddleware = (0, express_validator_1.query)("scopes")
45
+ const scopes = (0, express_validator_1.query)("scopes")
42
46
  .optional()
43
- .custom((_value, { req }) => {
44
- if (req.params?.["kind"] !== "information-panels") {
45
- throw new Error("scopes is only supported for information-panels");
46
- }
47
- return true;
48
- })
47
+ .custom(InformationPanelsOnlyValidator_1.InformationPanelsOnlyValidator.field("scopes"))
49
48
  .bail()
50
49
  .isIn(["routes"])
51
50
  .withMessage("scopes must be one of: routes");
52
- this.router.get("/", cacheMiddleware, this.controller.getIndex(`/${this.version}/${this.path}`));
53
- this.router.get("/:kind", kindParamMiddleware, jisQueryMiddleware, scopesQueryMiddleware, (0, Validation_1.paginationLimitMiddleware)("FyprElementKindsRouter"), Validation_1.checkErrors, cacheMiddleware, this.controller.getAll);
54
- this.router.get("/:kind/:id", kindParamMiddleware, (0, express_validator_1.param)("id").isUUID(), Validation_1.checkErrors, cacheMiddleware, this.controller.getOne);
51
+ const state = (0, express_validator_1.query)("state")
52
+ .optional()
53
+ .custom(InformationPanelsOnlyValidator_1.InformationPanelsOnlyValidator.field("state"))
54
+ .bail()
55
+ .isIn(index_1.fyprElementStates)
56
+ .withMessage(`state must be one of: ${index_1.fyprElementStates.join(", ")}`);
57
+ const hasDeviceId = (0, express_validator_1.query)("hasDeviceId")
58
+ .optional()
59
+ .custom(InformationPanelsOnlyValidator_1.InformationPanelsOnlyValidator.field("hasDeviceId"))
60
+ .bail()
61
+ .isBoolean({ strict: false })
62
+ .withMessage("hasDeviceId must be a boolean")
63
+ .toBoolean();
64
+ return [jis, scopes, state, hasDeviceId];
55
65
  }
56
66
  }
57
67
  exports.V1FyprElementKindsRouter = V1FyprElementKindsRouter;
@@ -1 +1 @@
1
- {"version":3,"file":"V1FyprElementKindsRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"V1FyprElementKindsRouter.js","sourceRoot":"","sources":["../../../../../src/output-gateway/fypr/routers/v1/V1FyprElementKindsRouter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { CustomValidator } from "@golemio/core/dist/shared/express-validator";
2
+ export declare class InformationPanelsOnlyValidator {
3
+ static field(paramName: string): CustomValidator;
4
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InformationPanelsOnlyValidator = void 0;
4
+ // Filters jis/scopes/state/hasDeviceId only make sense for information-panels; reject them on other kinds.
5
+ class InformationPanelsOnlyValidator {
6
+ static field(paramName) {
7
+ return (_value, { req }) => {
8
+ if (req.params?.["kind"] !== "information-panels") {
9
+ throw new Error(`${paramName} is only supported for information-panels`);
10
+ }
11
+ return true;
12
+ };
13
+ }
14
+ }
15
+ exports.InformationPanelsOnlyValidator = InformationPanelsOnlyValidator;
16
+ //# sourceMappingURL=InformationPanelsOnlyValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InformationPanelsOnlyValidator.js","sourceRoot":"","sources":["../../../../../../src/output-gateway/fypr/routers/v1/validators/InformationPanelsOnlyValidator.ts"],"names":[],"mappings":";;;AAEA,2GAA2G;AAC3G,MAAa,8BAA8B;IAChC,MAAM,CAAC,KAAK,CAAC,SAAiB;QACjC,OAAO,CAAC,MAAe,EAAE,EAAE,GAAG,EAAQ,EAAW,EAAE;YAC/C,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,oBAAoB,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,2CAA2C,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;CACJ;AATD,wEASC"}
@@ -44,3 +44,7 @@ export declare const nullableStringArray: {
44
44
  readonly nullable: true;
45
45
  }];
46
46
  };
47
+ export declare const stateEnum: {
48
+ readonly type: "string";
49
+ readonly enum: readonly ["Plánováno", "V přípravě", "Hotovo", "Zrušeno", "Neplánováno"];
50
+ };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nullableStringArray = exports.nullableDateString = exports.nullableBoolean = exports.nullableNumber = exports.nullableString = exports.STALE_ROW_THRESHOLD = exports.PG_SCHEMA = void 0;
3
+ exports.stateEnum = exports.nullableStringArray = exports.nullableDateString = exports.nullableBoolean = exports.nullableNumber = exports.nullableString = exports.STALE_ROW_THRESHOLD = exports.PG_SCHEMA = void 0;
4
+ const fyprElementStates_1 = require("./models/interfaces/fyprElementStates");
4
5
  exports.PG_SCHEMA = "fypr";
5
6
  exports.STALE_ROW_THRESHOLD = "NOW() - INTERVAL '1 minute'";
6
7
  // Reusable JSON schema fragments for nullable properties
@@ -19,4 +20,6 @@ exports.nullableStringArray = {
19
20
  { type: "null", nullable: true },
20
21
  ],
21
22
  };
23
+ // Required `state` / source `stav_prvku` enum fragment (non-null).
24
+ exports.stateEnum = { type: "string", enum: fyprElementStates_1.fyprElementStates };
22
25
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/schema-definitions/const.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,MAAM,CAAC;AACnB,QAAA,mBAAmB,GAAG,6BAA6B,CAAC;AAEjE,yDAAyD;AAC5C,QAAA,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC5F,QAAA,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC5F,QAAA,eAAe,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC9F,QAAA,kBAAkB,GAAG;IAC9B,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;CACK,CAAC;AACE,QAAA,mBAAmB,GAAG;IAC/B,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;CACK,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/schema-definitions/const.ts"],"names":[],"mappings":";;;AAAA,6EAA0E;AAE7D,QAAA,SAAS,GAAG,MAAM,CAAC;AACnB,QAAA,mBAAmB,GAAG,6BAA6B,CAAC;AAEjE,yDAAyD;AAC5C,QAAA,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC5F,QAAA,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC5F,QAAA,eAAe,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAW,CAAC;AAC9F,QAAA,kBAAkB,GAAG;IAC9B,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;CACK,CAAC;AACE,QAAA,mBAAmB,GAAG;IAC/B,KAAK,EAAE;QACH,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAC5C,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;KACnC;CACK,CAAC;AAEX,mEAAmE;AACtD,QAAA,SAAS,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,qCAAiB,EAAW,CAAC"}
@@ -12,7 +12,7 @@ exports.dbfyprElementsJSONSchema = {
12
12
  uid_prvku: const_1.nullableString,
13
13
  typ_prvku: const_1.nullableString,
14
14
  nazev_prvku: const_1.nullableString,
15
- stav_prvku: const_1.nullableString,
15
+ stav_prvku: const_1.stateEnum,
16
16
  vlastnik_prvku: const_1.nullableString,
17
17
  spravce_prvku: const_1.nullableString,
18
18
  umisteni_mestska_cast: const_1.nullableString,
@@ -27,7 +27,7 @@ exports.dbfyprElementsJSONSchema = {
27
27
  updatedAt: { type: "string", format: "date-time" },
28
28
  publishedAt: { type: "string", format: "date-time" },
29
29
  },
30
- required: ["id", "documentId", "createdAt", "updatedAt", "publishedAt"],
30
+ required: ["id", "documentId", "stav_prvku", "createdAt", "updatedAt", "publishedAt"],
31
31
  additionalProperties: false,
32
32
  },
33
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DBFYPRElementsJSONSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/data-sources/DBFYPRElementsJSONSchema.ts"],"names":[],"mappings":";;;AACA,oCAAiF;AAGpE,QAAA,wBAAwB,GAAqC;IACtE,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACvB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,SAAS,EAAE,sBAAc;YACzB,SAAS,EAAE,sBAAc;YACzB,WAAW,EAAE,sBAAc;YAC3B,UAAU,EAAE,sBAAc;YAC1B,cAAc,EAAE,sBAAc;YAC9B,aAAa,EAAE,sBAAc;YAC7B,qBAAqB,EAAE,sBAAc;YACrC,uBAAuB,EAAE,sBAAc;YACvC,uBAAuB,EAAE,sBAAc;YACvC,UAAU,EAAE,sBAAc;YAC1B,uBAAuB,EAAE,sBAAc;YACvC,gBAAgB,EAAE,sBAAc;YAChC,iBAAiB,EAAE,uBAAe;YAClC,uBAAuB,EAAE,0BAAkB;YAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;SACvD;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC;QACvE,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC"}
1
+ {"version":3,"file":"DBFYPRElementsJSONSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/data-sources/DBFYPRElementsJSONSchema.ts"],"names":[],"mappings":";;;AACA,oCAA4F;AAG/E,QAAA,wBAAwB,GAAqC;IACtE,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACvB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,SAAS,EAAE,sBAAc;YACzB,SAAS,EAAE,sBAAc;YACzB,WAAW,EAAE,sBAAc;YAC3B,UAAU,EAAE,iBAAS;YACrB,cAAc,EAAE,sBAAc;YAC9B,aAAa,EAAE,sBAAc;YAC7B,qBAAqB,EAAE,sBAAc;YACrC,uBAAuB,EAAE,sBAAc;YACvC,uBAAuB,EAAE,sBAAc;YACvC,UAAU,EAAE,sBAAc;YAC1B,uBAAuB,EAAE,sBAAc;YACvC,gBAAgB,EAAE,sBAAc;YAChC,iBAAiB,EAAE,uBAAe;YAClC,uBAAuB,EAAE,0BAAkB;YAC3C,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YAClD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;SACvD;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,CAAC;QACrF,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC"}
@@ -1,10 +1,11 @@
1
+ import { FyprElementState } from "../../models/interfaces/fyprElementStates";
1
2
  export interface IDBFYPRElement {
2
3
  id: number;
3
4
  documentId: string;
4
5
  uid_prvku: string | null;
5
6
  typ_prvku: string | null;
6
7
  nazev_prvku: string | null;
7
- stav_prvku: string | null;
8
+ stav_prvku: FyprElementState;
8
9
  vlastnik_prvku: string | null;
9
10
  spravce_prvku: string | null;
10
11
  umisteni_mestska_cast: string | null;
@@ -1,4 +1,6 @@
1
1
  import { Model, ModelAttributes } from "@golemio/core/dist/shared/sequelize";
2
+ export { AnyFyprElement } from "./FyprElementTypes";
3
+ export { fyprElementStates, FyprElementState } from "./models/interfaces/fyprElementStates";
2
4
  export type FyprEmbedConfig = {
3
5
  tableName: string;
4
6
  as: string;
@@ -23,4 +25,3 @@ export declare const FyprElementsConfig: {
23
25
  };
24
26
  export type FyprElementKind = keyof typeof FyprElementsConfig;
25
27
  export declare const fyprElementKinds: FyprElementKind[];
26
- export { AnyFyprElement } from "./FyprElementTypes";
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fyprElementKinds = exports.FyprElementsConfig = void 0;
3
+ exports.fyprElementKinds = exports.FyprElementsConfig = exports.fyprElementStates = void 0;
4
4
  const DisplayCaseModel_1 = require("./models/DisplayCaseModel");
5
5
  const InformationPanelModel_1 = require("./models/InformationPanelModel");
6
6
  const InformationPanelPresetsRoutesAggModel_1 = require("./models/InformationPanelPresetsRoutesAggModel");
7
7
  const ObeliskModel_1 = require("./models/ObeliskModel");
8
8
  const SignpostModel_1 = require("./models/SignpostModel");
9
9
  const TotemModel_1 = require("./models/TotemModel");
10
+ var fyprElementStates_1 = require("./models/interfaces/fyprElementStates");
11
+ Object.defineProperty(exports, "fyprElementStates", { enumerable: true, get: function () { return fyprElementStates_1.fyprElementStates; } });
10
12
  exports.FyprElementsConfig = {
11
13
  "display-cases": {
12
14
  cs_singular: "vitrína",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema-definitions/index.ts"],"names":[],"mappings":";;;AACA,gEAA6D;AAC7D,0EAAuE;AACvE,0GAAuG;AACvG,wDAAqD;AACrD,0DAAuD;AACvD,oDAAiD;AAmBpC,QAAA,kBAAkB,GAM3B;IACA,eAAe,EAAE;QACb,WAAW,EAAE,SAAS;QACtB,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,eAAe;QAC1B,SAAS,EAAE,mCAAgB,CAAC,SAAS;QACrC,cAAc,EAAE,mCAAgB,CAAC,cAAc;KAClD;IACD,oBAAoB,EAAE;QAClB,WAAW,EAAE,kBAAkB;QAC/B,EAAE,EAAE,mBAAmB;QACvB,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,6CAAqB,CAAC,SAAS;QAC1C,cAAc,EAAE,6CAAqB,CAAC,cAAc;QACpD,MAAM,EAAE;YACJ,MAAM,EAAE;gBACJ,SAAS,EAAE,6EAAqC,CAAC,SAAS;gBAC1D,EAAE,EAAE,kBAAkB;gBACtB,UAAU,EAAE,+BAA+B;gBAC3C,SAAS,EAAE,aAAa;gBACxB,cAAc,EAAE,6EAAqC,CAAC,cAAc;aACvE;SACJ;KACJ;IACD,QAAQ,EAAE;QACN,WAAW,EAAE,SAAS;QACtB,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,2BAAY,CAAC,SAAS;QACjC,cAAc,EAAE,2BAAY,CAAC,cAAc;KAC9C;IACD,SAAS,EAAE;QACP,WAAW,EAAE,WAAW;QACxB,EAAE,EAAE,YAAY;QAChB,SAAS,EAAE,WAAW;QACtB,SAAS,EAAE,6BAAa,CAAC,SAAS;QAClC,cAAc,EAAE,6BAAa,CAAC,cAAc;KAC/C;IACD,MAAM,EAAE;QACJ,WAAW,EAAE,OAAO;QACpB,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,uBAAU,CAAC,SAAS;QAC/B,cAAc,EAAE,uBAAU,CAAC,cAAc;KAC5C;CACJ,CAAC;AAIW,QAAA,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,0BAAkB,CAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema-definitions/index.ts"],"names":[],"mappings":";;;AACA,gEAA6D;AAC7D,0EAAuE;AACvE,0GAAuG;AACvG,wDAAqD;AACrD,0DAAuD;AACvD,oDAAiD;AAGjD,2EAA4F;AAAnF,sHAAA,iBAAiB,OAAA;AAmBb,QAAA,kBAAkB,GAM3B;IACA,eAAe,EAAE;QACb,WAAW,EAAE,SAAS;QACtB,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,eAAe;QAC1B,SAAS,EAAE,mCAAgB,CAAC,SAAS;QACrC,cAAc,EAAE,mCAAgB,CAAC,cAAc;KAClD;IACD,oBAAoB,EAAE;QAClB,WAAW,EAAE,kBAAkB;QAC/B,EAAE,EAAE,mBAAmB;QACvB,SAAS,EAAE,oBAAoB;QAC/B,SAAS,EAAE,6CAAqB,CAAC,SAAS;QAC1C,cAAc,EAAE,6CAAqB,CAAC,cAAc;QACpD,MAAM,EAAE;YACJ,MAAM,EAAE;gBACJ,SAAS,EAAE,6EAAqC,CAAC,SAAS;gBAC1D,EAAE,EAAE,kBAAkB;gBACtB,UAAU,EAAE,+BAA+B;gBAC3C,SAAS,EAAE,aAAa;gBACxB,cAAc,EAAE,6EAAqC,CAAC,cAAc;aACvE;SACJ;KACJ;IACD,QAAQ,EAAE;QACN,WAAW,EAAE,SAAS;QACtB,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,2BAAY,CAAC,SAAS;QACjC,cAAc,EAAE,2BAAY,CAAC,cAAc;KAC9C;IACD,SAAS,EAAE;QACP,WAAW,EAAE,WAAW;QACxB,EAAE,EAAE,YAAY;QAChB,SAAS,EAAE,WAAW;QACtB,SAAS,EAAE,6BAAa,CAAC,SAAS;QAClC,cAAc,EAAE,6BAAa,CAAC,cAAc;KAC/C;IACD,MAAM,EAAE;QACJ,WAAW,EAAE,OAAO;QACpB,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE,QAAQ;QACnB,SAAS,EAAE,uBAAU,CAAC,SAAS;QAC/B,cAAc,EAAE,uBAAU,CAAC,cAAc;KAC5C;CACJ,CAAC;AAIW,QAAA,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,0BAAkB,CAAsB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { CreationOptional, InferAttributes, InferCreationAttributes, Model, ModelAttributes } from "@golemio/core/dist/shared/sequelize";
2
+ import { FyprElementState } from "./interfaces/fyprElementStates";
2
3
  import { IElement } from "./interfaces/IElement";
3
4
  export declare abstract class AbstractElementModel extends Model<InferAttributes<AbstractElementModel>, InferCreationAttributes<AbstractElementModel>> implements IElement {
4
5
  id: CreationOptional<string>;
@@ -6,7 +7,7 @@ export declare abstract class AbstractElementModel extends Model<InferAttributes
6
7
  uid: string | null;
7
8
  kind: string | null;
8
9
  name: string | null;
9
- state: string | null;
10
+ state: FyprElementState;
10
11
  owner: string | null;
11
12
  manager: string | null;
12
13
  city_district: string | null;
@@ -55,12 +56,8 @@ export declare abstract class AbstractElementModel extends Model<InferAttributes
55
56
  }];
56
57
  };
57
58
  readonly state: {
58
- readonly oneOf: readonly [{
59
- readonly type: "string";
60
- }, {
61
- readonly type: "null";
62
- readonly nullable: true;
63
- }];
59
+ readonly type: "string";
60
+ readonly enum: readonly ["Plánováno", "V přípravě", "Hotovo", "Zrušeno", "Neplánováno"];
64
61
  };
65
62
  readonly owner: {
66
63
  readonly oneOf: readonly [{
@@ -54,7 +54,7 @@ AbstractElementModel.elementJSONSchemaProperties = {
54
54
  },
55
55
  kind: const_1.nullableString,
56
56
  name: const_1.nullableString,
57
- state: const_1.nullableString,
57
+ state: const_1.stateEnum,
58
58
  owner: const_1.nullableString,
59
59
  manager: const_1.nullableString,
60
60
  city_district: const_1.nullableString,
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractElementModel.js","sourceRoot":"","sources":["../../../src/schema-definitions/models/AbstractElementModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractElementModel.js","sourceRoot":"","sources":["../../../src/schema-definitions/models/AbstractElementModel.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
+ import { FyprElementState } from "./fyprElementStates";
1
2
  export interface IElement {
2
3
  document_id: string;
3
4
  uid: string | null;
4
5
  kind: string | null;
5
6
  name: string | null;
6
- state: string | null;
7
+ state: FyprElementState;
7
8
  owner: string | null;
8
9
  manager: string | null;
9
10
  city_district: string | null;
@@ -0,0 +1,2 @@
1
+ export declare const fyprElementStates: readonly ["Plánováno", "V přípravě", "Hotovo", "Zrušeno", "Neplánováno"];
2
+ export type FyprElementState = typeof fyprElementStates[number];
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fyprElementStates = void 0;
4
+ // Values of the `state` column (Czech `stav_prvku`), shared by all FYPR element kinds.
5
+ exports.fyprElementStates = ["Plánováno", "V přípravě", "Hotovo", "Zrušeno", "Neplánováno"];
6
+ //# sourceMappingURL=fyprElementStates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fyprElementStates.js","sourceRoot":"","sources":["../../../../src/schema-definitions/models/interfaces/fyprElementStates.ts"],"names":[],"mappings":";;;AAAA,uFAAuF;AAC1E,QAAA,iBAAiB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAU,CAAC"}
@@ -406,11 +406,9 @@ components:
406
406
  sablony:
407
407
  type: string
408
408
  nullable: true
409
- presets:
410
- type: array
411
- items:
412
- type: string
413
- nullable: true
409
+ preset:
410
+ type: string
411
+ nullable: true
414
412
  datovy_zdroj:
415
413
  type: string
416
414
  nullable: true
@@ -288,8 +288,18 @@ Výsledky jsou řazeny dle `source_created_at ASC` (nejstarší záznamy první,
288
288
  | `signposts` | `fypr.signposts` | [`SignpostModel`](../src/schema-definitions/models/SignpostModel.ts) |
289
289
  | `totems` | `fypr.totems` | [`TotemModel`](../src/schema-definitions/models/TotemModel.ts) |
290
290
 
291
+ - volitelné filtrovací query parametry (pouze pro `information-panels`, jinak `400`):
292
+ - `jis` (boolean) — filtruje dle příznaku `jis_graphic`
293
+ - `state` (enum, lze opakovat) — filtruje dle stavu prvku; opakováním se vytvoří podmínka `IN`
294
+ (`state=Hotovo&state=Plánováno`); platné hodnoty: `Plánováno`, `V přípravě`, `Hotovo`, `Zrušeno`, `Neplánováno`
295
+ - `hasDeviceId` (boolean) — `true` vrátí infopanely s vyplněným `device_id`, `false` infopanely bez něj
296
+
297
+ - volitelné query parametry pro připojení souvisejících dat (embed/join, pouze pro `information-panels`):
298
+ - `scopes=routes` — připojí k infopanelům související linky (`routes`) z navázaných tabulek presetů
299
+
291
300
  - chybové stavové kódy:
292
- - `400` — neznámý `:kind`, neplatný `limit` (mimo rozsah 1–10000) nebo záporný `offset`
301
+ - `400` — neznámý `:kind`, neplatný `limit` (mimo rozsah 1–10000), záporný `offset`,
302
+ neplatná hodnota filtru nebo filtr použitý na jiný `:kind` než `information-panels`
293
303
  - `413` — `limit` překročí maximum (> 10000)
294
304
 
295
305
  #### `GET /v1/fypr/elements/:kind/:id`
@@ -159,6 +159,33 @@ paths:
159
159
  Extend the panel response with related resources. Currently only "routes" is
160
160
  supported — adds routes directly to each panel with preset routes grouped by
161
161
  preset name. Only valid for information-panels.
162
+ - name: state
163
+ in: query
164
+ required: false
165
+ style: form
166
+ explode: true
167
+ schema:
168
+ type: array
169
+ items:
170
+ type: string
171
+ enum:
172
+ - Plánováno
173
+ - V přípravě
174
+ - Hotovo
175
+ - Zrušeno
176
+ - Neplánováno
177
+ description: >-
178
+ Filter by element state. Repeat the parameter to match any of several states
179
+ (e.g. state=Hotovo&state=Plánováno). Only valid for information-panels.
180
+ - name: hasDeviceId
181
+ in: query
182
+ required: false
183
+ schema:
184
+ type: boolean
185
+ description: >-
186
+ Filter by presence of a device_id. true returns only panels that have a
187
+ device_id; false returns only panels without one. Only valid for
188
+ information-panels.
162
189
  responses:
163
190
  "200":
164
191
  description: OK
@@ -598,11 +625,10 @@ components:
598
625
  description: Human-readable name of the element. May be null.
599
626
  state:
600
627
  type: string
601
- nullable: true
602
- example: "REALIZED"
628
+ nullable: false
629
+ example: "Hotovo"
603
630
  description: >-
604
- Lifecycle state of the element (e.g. PLANNED, IN_PROGRESS,
605
- REALIZED). Sourced from CMS. May be null.
631
+ Lifecycle state of the element (e.g. Plánováno, Neplánováno, Zrušeno, Hotovo, V přípravě).
606
632
  owner:
607
633
  type: string
608
634
  nullable: true
@@ -735,8 +761,8 @@ components:
735
761
  nullable: true
736
762
  example: "U123456"
737
763
  description: >-
738
- Stop identifier from the THMP (Prague Transport Information System).
739
- May be null if not linked to a THMP stop.
764
+ Stop identifier from the THMP system. May be null if not linked
765
+ to a THMP stop.
740
766
  shelter_type:
741
767
  type: string
742
768
  nullable: true
@@ -775,17 +801,15 @@ components:
775
801
  asw_node_id:
776
802
  type: string
777
803
  nullable: true
778
- example: "500003"
804
+ example: "1040"
779
805
  description: >-
780
- Node identifier from the ASW (Automated Stop Management) system
781
- linking the display case to a stop node. May be null.
806
+ Node identifier in the ASW system. May be null.
782
807
  asw_stop_id:
783
808
  type: string
784
809
  nullable: true
785
- example: "900001234"
810
+ example: "3"
786
811
  description: >-
787
- Stop identifier from the ASW (Automated Stop Management) system.
788
- May be null.
812
+ Stop identifier from the ASW system on the ASW node. May be null.
789
813
  location_description:
790
814
  type: string
791
815
  nullable: true
@@ -827,8 +851,8 @@ components:
827
851
  nullable: true
828
852
  example: "THMP-DC-0056"
829
853
  description: >-
830
- Element number assigned by the THMP (Prague Transport Information
831
- System). May be null if not registered in THMP.
854
+ Element number assigned by the THMP system. May be null if not
855
+ registered in THMP.
832
856
  cleaning_frequency:
833
857
  type: string
834
858
  nullable: true
@@ -952,8 +976,7 @@ components:
952
976
  nullable: true
953
977
  example: "U100Z1P"
954
978
  description: >-
955
- Stop identifier in the THMP (Technicka hromadna mestska preprava)
956
- registry. May be null.
979
+ Stop identifier in the THMP registry. May be null.
957
980
  land_parcel_number:
958
981
  type: string
959
982
  nullable: true
@@ -1032,10 +1055,9 @@ components:
1032
1055
  connection_type:
1033
1056
  type: string
1034
1057
  nullable: true
1035
- example: "ethernet"
1058
+ example: "PRE"
1036
1059
  description: >-
1037
- Technology used for the panel's data connection (e.g. ethernet,
1038
- GSM, LTE). May be null.
1060
+ Type of electrical power supply connection for the panel. May be null.
1039
1061
  connection_mode:
1040
1062
  type: string
1041
1063
  nullable: true
@@ -1178,13 +1200,13 @@ components:
1178
1200
  presets:
1179
1201
  type: array
1180
1202
  nullable: true
1181
- items:
1182
- type: string
1203
+ items:
1204
+ type: string
1183
1205
  example:
1184
1206
  - "gema-masarykovo_nadrazi-a"
1185
- - "gema-masarykovo_nadrazi-b"
1207
+ - "gema-masarykovo_nadrazi-b"
1186
1208
  description: >-
1187
- Presets assigned to this panel.
1209
+ Departure preset identifiers assigned to this panel. Null if no presets are configured
1188
1210
  data_source:
1189
1211
  type: string
1190
1212
  nullable: true
@@ -1204,15 +1226,13 @@ components:
1204
1226
  nullable: true
1205
1227
  example: "cabinet-A3"
1206
1228
  description: >-
1207
- Identifier of the electrical or network connection point used by
1208
- this panel. May be null.
1229
+ Specification of location type where the device is connected.
1209
1230
  connection_point_number:
1210
1231
  type: string
1211
1232
  nullable: true
1212
1233
  example: "CP-007"
1213
1234
  description: >-
1214
- Sequential number of the connection point within its cabinet or
1215
- junction. May be null.
1235
+ Identifier of the electrical connection point used by this panel.
1216
1236
  foundation_type:
1217
1237
  type: string
1218
1238
  nullable: true
@@ -1362,16 +1382,15 @@ components:
1362
1382
  asw_node_id:
1363
1383
  type: string
1364
1384
  nullable: true
1365
- example: "U953N1"
1385
+ example: "1040"
1366
1386
  description: >-
1367
- Node identifier in the ASW (Automatizovany system rizeni) network
1368
- registry. May be null.
1387
+ Node identifier in the ASW system. May be null.
1369
1388
  asw_stop_id:
1370
1389
  type: string
1371
1390
  nullable: true
1372
- example: "U953"
1391
+ example: "3"
1373
1392
  description: >-
1374
- Stop identifier in the ASW network registry. May be null.
1393
+ Stop identifier from the ASW system on the ASW node. May be null.
1375
1394
  power_consumption_watt:
1376
1395
  type: number
1377
1396
  format: float
@@ -1419,9 +1438,7 @@ components:
1419
1438
  nullable: true
1420
1439
  example: 6
1421
1440
  description: >-
1422
- Count of rows for text or data on the panel. The source system
1423
- stores this with a "v" prefix which is stripped on output.
1424
- May be null.
1441
+ Count of rows for text or data on the panel. May be null.
1425
1442
  design_price_without_vat:
1426
1443
  type: number
1427
1444
  format: float
@@ -1479,9 +1496,10 @@ components:
1479
1496
  Contact information for the element owner. May be null.
1480
1497
  connectivity_internet:
1481
1498
  type: string
1499
+ example: "Wi-Fi"
1482
1500
  nullable: true
1483
1501
  description: >-
1484
- Internet connectivity type or provider for the panel. May be null.
1502
+ Internet connectivity type for the panel. May be null.
1485
1503
  phone_number:
1486
1504
  type: string
1487
1505
  nullable: true
@@ -1794,9 +1812,9 @@ components:
1794
1812
  panel_size:
1795
1813
  type: string
1796
1814
  nullable: true
1797
- example: "2400x900"
1815
+ example: "Standart"
1798
1816
  description: >-
1799
- Physical size of the totem's display panel (width x height in mm).
1817
+ Size of the totem's display panel (e.g. "Standart", "Atyp").
1800
1818
  May be null if not yet specified.
1801
1819
  locality:
1802
1820
  type: string
@@ -1881,10 +1899,10 @@ components:
1881
1899
  building_permit_state:
1882
1900
  type: string
1883
1901
  nullable: true
1884
- example: "GRANTED"
1902
+ example: "Plánováno"
1885
1903
  description: >-
1886
1904
  Current state of the building permit process
1887
- (e.g. PENDING, GRANTED, NOT_REQUIRED). May be null.
1905
+ (e.g. Plánováno, Neplánováno, Zrušeno, Hotovo). May be null.
1888
1906
  location_note:
1889
1907
  type: string
1890
1908
  nullable: true
@@ -2100,17 +2118,15 @@ components:
2100
2118
  asw_node_id:
2101
2119
  type: string
2102
2120
  nullable: true
2103
- example: "U12345"
2121
+ example: "1040"
2104
2122
  description: >-
2105
- Node identifier in the ASW (automated stop information system)
2106
- associated with this totem's location. May be null.
2123
+ Node identifier in the ASW system. May be null.
2107
2124
  asw_stop_id:
2108
2125
  type: string
2109
2126
  nullable: true
2110
- example: "Z12345"
2127
+ example: "3"
2111
2128
  description: >-
2112
- Stop identifier in the ASW system linked to this totem.
2113
- May be null.
2129
+ Stop identifier from the ASW system on the ASW node. May be null.
2114
2130
  power_consumption_watt:
2115
2131
  type: number
2116
2132
  format: double
@@ -2124,8 +2140,7 @@ components:
2124
2140
  nullable: true
2125
2141
  example: "THMP-2024-00456"
2126
2142
  description: >-
2127
- Element number assigned within the THMP (Technical Management
2128
- of Public Infrastructure) register. May be null.
2143
+ Element number assigned within the THMP register. May be null.
2129
2144
  electricity_supply_contract:
2130
2145
  type: string
2131
2146
  nullable: true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/fypr",
3
- "version": "1.7.2-dev.2607926676",
3
+ "version": "1.8.0-dev.2611358386",
4
4
  "description": "Golemio FYPR Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",