@golemio/fypr 1.1.1-dev.2348873705 → 1.1.1-dev.2368450356

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.
@@ -4,8 +4,9 @@ info:
4
4
  title: 🗿 FYPR API
5
5
  description: >-
6
6
  <p>
7
- This is a placeholder description that is automatically replaced in the build process, see <a href="https://gitlab.com/operator-ict/golemio/code/vp/output-gateway/-/blob/development/docs/openapi-header.yaml" target="_blank">/vp/output-gateway/docs/openapi-header.yaml</a>.
7
+ Data about physical (on-site) information elements of the Legible Prague system.
8
8
  </p>
9
+ <p>Developed by <a href="https://operatorict.cz">operatorict.cz</a></p>
9
10
  version: 1.0.0
10
11
  contact:
11
12
  name: Golemio Prague Data Platform
@@ -19,31 +20,1697 @@ servers:
19
20
  description: Test (development) server
20
21
 
21
22
  tags:
22
- - name: 🗿 FYPR (v1)
23
- description: Data about physical (on-site) information elements of the Legible Prague system in form of an API.
23
+ - name: FYPR (v1)
24
+ description: Data about physical (on-site) information elements of the Legible Prague system.
24
25
 
25
26
  paths:
26
- # TODO: Replace status with actual endpoints
27
- /status:
27
+ /v1/fypr/display-cases:
28
28
  get:
29
29
  tags:
30
- - 🗿 FYPR (v1)
30
+ - FYPR (v1)
31
+ summary: GET All Display Cases
32
+ operationId: listDisplayCases
33
+ parameters:
34
+ - $ref: "#/components/parameters/limit"
35
+ - $ref: "#/components/parameters/offset"
31
36
  responses:
32
37
  "200":
33
38
  description: OK
34
39
 
40
+ content:
41
+ application/json:
42
+ schema:
43
+ type: array
44
+ items:
45
+ $ref: "#/components/schemas/DisplayCase"
46
+ "400":
47
+ $ref: "#/components/responses/BadRequestError"
48
+ "401":
49
+ $ref: "#/components/responses/UnauthorizedError"
50
+
51
+ /v1/fypr/information-panels:
52
+ get:
53
+ tags:
54
+ - FYPR (v1)
55
+ summary: GET All Information Panels
56
+ operationId: listInformationPanels
57
+ parameters:
58
+ - $ref: "#/components/parameters/limit"
59
+ - $ref: "#/components/parameters/offset"
60
+ responses:
61
+ "200":
62
+ description: OK
63
+
64
+ content:
65
+ application/json:
66
+ schema:
67
+ type: array
68
+ items:
69
+ $ref: "#/components/schemas/InformationPanel"
70
+ "400":
71
+ $ref: "#/components/responses/BadRequestError"
72
+ "401":
73
+ $ref: "#/components/responses/UnauthorizedError"
74
+
75
+ /v1/fypr/obelisks:
76
+ get:
77
+ tags:
78
+ - FYPR (v1)
79
+ summary: GET All Obelisks
80
+ operationId: listObelisks
81
+ parameters:
82
+ - $ref: "#/components/parameters/limit"
83
+ - $ref: "#/components/parameters/offset"
84
+ responses:
85
+ "200":
86
+ description: OK
87
+
88
+ content:
89
+ application/json:
90
+ schema:
91
+ type: array
92
+ items:
93
+ $ref: "#/components/schemas/Obelisk"
94
+ "400":
95
+ $ref: "#/components/responses/BadRequestError"
96
+ "401":
97
+ $ref: "#/components/responses/UnauthorizedError"
98
+
99
+ /v1/fypr/signposts:
100
+ get:
101
+ tags:
102
+ - FYPR (v1)
103
+ summary: GET All Signposts
104
+ operationId: listSignposts
105
+ parameters:
106
+ - $ref: "#/components/parameters/limit"
107
+ - $ref: "#/components/parameters/offset"
108
+ responses:
109
+ "200":
110
+ description: OK
111
+
112
+ content:
113
+ application/json:
114
+ schema:
115
+ type: array
116
+ items:
117
+ $ref: "#/components/schemas/Signpost"
118
+ "400":
119
+ $ref: "#/components/responses/BadRequestError"
120
+ "401":
121
+ $ref: "#/components/responses/UnauthorizedError"
122
+
123
+ /v1/fypr/totems:
124
+ get:
125
+ tags:
126
+ - FYPR (v1)
127
+ summary: GET All Totems
128
+ operationId: listTotems
129
+ parameters:
130
+ - $ref: "#/components/parameters/limit"
131
+ - $ref: "#/components/parameters/offset"
132
+ responses:
133
+ "200":
134
+ description: OK
135
+
136
+ content:
137
+ application/json:
138
+ schema:
139
+ type: array
140
+ items:
141
+ $ref: "#/components/schemas/Totem"
142
+ "400":
143
+ $ref: "#/components/responses/BadRequestError"
144
+ "401":
145
+ $ref: "#/components/responses/UnauthorizedError"
146
+
35
147
  components:
36
- headers:
37
- LastModified:
38
- description: Timestamp of the latest resource update.
148
+ parameters:
149
+ limit:
150
+ name: limit
151
+ in: query
152
+ required: false
153
+ example: 10
39
154
  schema:
40
- type: string
41
- example: "2024-08-12T12:40:30.000Z"
42
- CacheControlNoCache:
43
- description: Cache control directive for caching proxies
155
+ type: integer
156
+ description: >-
157
+ Limits number of retrieved items.
158
+
159
+ offset:
160
+ name: offset
161
+ in: query
162
+ required: false
163
+ example: 0
44
164
  schema:
45
- type: string
46
- example: no-store, no-cache, must-revalidate
165
+ type: integer
166
+ description: Offset for pagination. The default value is 0.
167
+
168
+ schemas:
169
+ DisplayCase:
170
+ description: >-
171
+ Fully composed DisplayCase schema for list responses. Combines DisplayCaseBase
172
+ (writable display-case-specific and base fields) with server-set read-only fields
173
+ from ElementReadOnly. The required array enforces that id and source_updated_at
174
+ are always present in responses.
175
+ allOf:
176
+ - $ref: "#/components/schemas/ElementReadOnly"
177
+ - $ref: "#/components/schemas/DisplayCaseBase"
178
+ - type: object
179
+ required:
180
+ - id
181
+ - source_updated_at
182
+
183
+ DisplayCaseBase:
184
+ allOf:
185
+ - $ref: "#/components/schemas/ElementBase"
186
+ - type: object
187
+ description: >-
188
+ Writable fields specific to the DisplayCase element type. Extends ElementBase
189
+ via allOf with 19 display-case-specific properties. No id or timestamps.
190
+ properties:
191
+ stop_name:
192
+ type: string
193
+ nullable: true
194
+ example: "Palackeho namesti"
195
+ description: >-
196
+ Name of the public transport stop where the display case is installed.
197
+ May be null if not yet associated with a stop.
198
+ stop_direction:
199
+ type: string
200
+ nullable: true
201
+ example: "smer Dejvicka"
202
+ description: >-
203
+ Direction indicator for the stop (e.g. towards a terminal station).
204
+ May be null.
205
+ platform_code:
206
+ type: string
207
+ nullable: true
208
+ example: "A"
209
+ description: >-
210
+ Platform or stand code at the stop where the display case is located.
211
+ May be null.
212
+ stop_type:
213
+ type: array
214
+ nullable: true
215
+ items:
216
+ type: string
217
+ example:
218
+ - "bus"
219
+ - "tram"
220
+ description: >-
221
+ List of transport mode types served by the associated stop
222
+ (e.g. bus, tram, metro). May be null if stop type is unknown.
223
+ thmp_stop_id:
224
+ type: string
225
+ nullable: true
226
+ example: "U123456"
227
+ description: >-
228
+ Stop identifier from the THMP (Prague Transport Information System).
229
+ May be null if not linked to a THMP stop.
230
+ shelter_type:
231
+ type: string
232
+ nullable: true
233
+ example: "standard"
234
+ description: >-
235
+ Type classification of the shelter or enclosure housing the display case.
236
+ May be null.
237
+ shelter_id:
238
+ type: string
239
+ nullable: true
240
+ example: "P-1234"
241
+ description: >-
242
+ Identifier of the shelter unit that contains this display case.
243
+ May be null if not housed in a tracked shelter.
244
+ qr_code:
245
+ type: string
246
+ nullable: true
247
+ example: "https://pid.cz/qr/dc-001"
248
+ description: >-
249
+ QR code value or URL associated with the display case for passenger
250
+ information access. May be null.
251
+ supplier:
252
+ type: string
253
+ nullable: true
254
+ example: "JCDecaux"
255
+ description: >-
256
+ Name of the company or contractor that supplied or installed the
257
+ display case. May be null.
258
+ comments:
259
+ type: string
260
+ nullable: true
261
+ example: "Poloha zmenena v rijnu 2023"
262
+ description: >-
263
+ Free-text operational comments or notes about the display case entered
264
+ by field staff. May be null.
265
+ asw_node_id:
266
+ type: string
267
+ nullable: true
268
+ example: "500003"
269
+ description: >-
270
+ Node identifier from the ASW (Automated Stop Management) system
271
+ linking the display case to a stop node. May be null.
272
+ asw_stop_id:
273
+ type: string
274
+ nullable: true
275
+ example: "900001234"
276
+ description: >-
277
+ Stop identifier from the ASW (Automated Stop Management) system.
278
+ May be null.
279
+ location_description:
280
+ type: string
281
+ nullable: true
282
+ example: "Na sloupu u vchodu do metrostanice"
283
+ description: >-
284
+ Human-readable description of the exact physical placement of the
285
+ display case at the stop. May be null.
286
+ street_name:
287
+ type: string
288
+ nullable: true
289
+ example: "Vaclavske namesti"
290
+ description: >-
291
+ Name of the street or square where the display case is located.
292
+ May be null.
293
+ ropid_element_id:
294
+ type: string
295
+ nullable: true
296
+ example: "ROPID-DC-00421"
297
+ description: >-
298
+ Element identifier assigned by ROPID (Prague Integrated Transport
299
+ organizer). May be null if not yet registered with ROPID.
300
+ price_without_vat:
301
+ type: number
302
+ format: double
303
+ nullable: true
304
+ example: 48500.00
305
+ description: >-
306
+ Acquisition or installation price of the display case excluding VAT,
307
+ in Czech crowns (CZK). May be null if cost data is unavailable.
308
+ serial_number:
309
+ type: string
310
+ nullable: true
311
+ example: "SN-2023-00789"
312
+ description: >-
313
+ Manufacturer serial number of the display case unit. Used for asset
314
+ tracking and warranty management. May be null.
315
+ thmp_element_number:
316
+ type: string
317
+ nullable: true
318
+ example: "THMP-DC-0056"
319
+ description: >-
320
+ Element number assigned by the THMP (Prague Transport Information
321
+ System). May be null if not registered in THMP.
322
+ cleaning_frequency:
323
+ type: string
324
+ nullable: true
325
+ example: "weekly"
326
+ description: >-
327
+ Scheduled cleaning frequency for the display case (e.g. daily,
328
+ weekly, monthly). May be null if no cleaning schedule is set.
329
+
330
+ ElementBase:
331
+ type: object
332
+ description: >-
333
+ Writable base fields shared by all FYPR element types. No id or timestamps.
334
+ Composed via allOf by each typed element schema.
335
+ required:
336
+ - document_id
337
+ - kind
338
+ properties:
339
+ document_id:
340
+ type: string
341
+ nullable: false
342
+ example: "abc123def456"
343
+ description: >-
344
+ Unique document identifier sourced from the upstream CMS (Strapi).
345
+ Used as the stable external reference for deduplication.
346
+ uid:
347
+ type: string
348
+ format: uuid
349
+ nullable: true
350
+ example: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
351
+ description: >-
352
+ Optional external UUID assigned to the physical element by the
353
+ field operations team. May be null for elements not yet assigned.
354
+ kind:
355
+ type: string
356
+ nullable: false
357
+ enum:
358
+ - totem
359
+ - information_panel
360
+ - display_case
361
+ - obelisk
362
+ - signpost
363
+ example: "totem"
364
+ description: >-
365
+ Discriminator field identifying the element type. Determines which
366
+ typed schema applies (Totem, InformationPanel, DisplayCase, Obelisk,
367
+ Signpost).
368
+ name:
369
+ type: string
370
+ nullable: true
371
+ example: "Totem Palackeho namesti"
372
+ description: Human-readable name of the element. May be null.
373
+ state:
374
+ type: string
375
+ nullable: true
376
+ example: "REALIZED"
377
+ description: >-
378
+ Lifecycle state of the element (e.g. PLANNED, IN_PROGRESS,
379
+ REALIZED). Sourced from CMS. May be null.
380
+ owner:
381
+ type: string
382
+ nullable: true
383
+ example: "ROPID"
384
+ description: >-
385
+ Organization or entity that owns the element. May be null.
386
+ city_district:
387
+ type: string
388
+ nullable: true
389
+ example: "Praha 6"
390
+ description: >-
391
+ Prague city district where the element is physically located.
392
+ May be null.
393
+ lat:
394
+ type: number
395
+ format: double
396
+ nullable: true
397
+ example: 50.0755
398
+ description: >-
399
+ WGS-84 latitude coordinate of the element's installation site.
400
+ May be null if coordinates are not yet surveyed.
401
+ lon:
402
+ type: number
403
+ format: double
404
+ nullable: true
405
+ example: 14.4378
406
+ description: >-
407
+ WGS-84 longitude coordinate of the element's installation site.
408
+ May be null if coordinates are not yet surveyed.
409
+ map_link:
410
+ type: string
411
+ nullable: true
412
+ example: "https://mapy.cz/s/example"
413
+ description: >-
414
+ URL to an external map view showing the element location.
415
+ May be null.
416
+ planned_year_of_realization:
417
+ type: string
418
+ nullable: true
419
+ example: "2025"
420
+ description: >-
421
+ Year in which the element is planned to be realized or installed.
422
+ Stored as string to accommodate partial or estimated values.
423
+ May be null.
424
+ note:
425
+ type: string
426
+ nullable: true
427
+ example: "Installed near bus stop exit B."
428
+ description: >-
429
+ Free-text operational note attached to the element by field staff.
430
+ May be null.
431
+ handover:
432
+ type: boolean
433
+ nullable: true
434
+ example: true
435
+ description: >-
436
+ Indicates whether the element has been handed over to the
437
+ maintenance team. May be null if handover status is unknown.
438
+ handover_date:
439
+ type: string
440
+ format: date
441
+ nullable: true
442
+ example: "2024-08-12"
443
+ description: >-
444
+ Date on which the element was formally handed over to the
445
+ maintenance team. ISO 8601 date. May be null.
446
+
447
+ ElementId:
448
+ type: string
449
+ format: uuid
450
+ example: "1b75c16b-d5a3-40ca-8560-5a7dc011655d"
451
+ description: >-
452
+ Unique identifier for an element. UUID v4, server-generated.
453
+
454
+ ElementReadOnly:
455
+ type: object
456
+ description: >-
457
+ Server-set fields that clients can only read. All properties carry
458
+ readOnly: true. Composed via allOf into each typed element schema.
459
+ properties:
460
+ id:
461
+ allOf:
462
+ - $ref: "#/components/schemas/ElementId"
463
+ readOnly: true
464
+ description: >-
465
+ Server-generated UUID primary key. Immutable after creation.
466
+ source_created_at:
467
+ type: string
468
+ format: date-time
469
+ readOnly: true
470
+ example: "2024-01-15T08:30:00.000Z"
471
+ description: >-
472
+ Timestamp when the record was first created in the upstream CMS
473
+ (Strapi). ISO 8601 UTC. Server-set, not writable by clients.
474
+ source_updated_at:
475
+ type: string
476
+ format: date-time
477
+ readOnly: true
478
+ example: "2024-08-12T12:40:30.000Z"
479
+ description: >-
480
+ Timestamp of the most recent update in the upstream CMS (Strapi).
481
+ ISO 8601 UTC. Server-set, not writable by clients.
482
+ source_published_at:
483
+ type: string
484
+ format: date-time
485
+ readOnly: true
486
+ example: "2024-08-12T13:00:00.000Z"
487
+ description: >-
488
+ Timestamp when the record was published in the upstream CMS
489
+ (Strapi). ISO 8601 UTC. Server-set, not writable by clients.
490
+
491
+ InformationPanel:
492
+ description: >-
493
+ Fully composed information panel schema. Combines InformationPanelBase (writable
494
+ type-specific and base fields) with ElementReadOnly (server-set timestamps and id).
495
+ Returned by the list endpoint GET /v1/information-panels.
496
+ allOf:
497
+ - $ref: "#/components/schemas/ElementReadOnly"
498
+ - $ref: "#/components/schemas/InformationPanelBase"
499
+ - type: object
500
+ required:
501
+ - id
502
+ - source_updated_at
503
+
504
+ InformationPanelBase:
505
+ description: >-
506
+ Writable fields for an information panel element. Extends ElementBase via allOf
507
+ with 75 type-specific properties. Compose with ElementReadOnly to obtain the
508
+ full InformationPanel read schema.
509
+ allOf:
510
+ - $ref: "#/components/schemas/ElementBase"
511
+ - type: object
512
+ properties:
513
+ stop_name:
514
+ type: string
515
+ nullable: true
516
+ example: "Palackeho namesti"
517
+ description: >-
518
+ Human-readable name of the stop where the panel is installed.
519
+ May be null.
520
+ stop_direction:
521
+ type: string
522
+ nullable: true
523
+ example: "Smichov"
524
+ description: >-
525
+ Direction label shown on the panel for the associated stop.
526
+ May be null.
527
+ platform_code:
528
+ type: string
529
+ nullable: true
530
+ example: "A"
531
+ description: >-
532
+ Platform or stand identifier within the stop. May be null.
533
+ stop_type:
534
+ type: array
535
+ nullable: true
536
+ items:
537
+ type: string
538
+ example:
539
+ - "bus"
540
+ - "tram"
541
+ description: >-
542
+ List of transport mode types served at the stop (e.g. bus, tram,
543
+ metro). May be null.
544
+ thmp_stop_id:
545
+ type: string
546
+ nullable: true
547
+ example: "U100Z1P"
548
+ description: >-
549
+ Stop identifier in the THMP (Technicka hromadna mestska preprava)
550
+ registry. May be null.
551
+ land_parcel_number:
552
+ type: string
553
+ nullable: true
554
+ example: "1234/5"
555
+ description: >-
556
+ Cadastral parcel number of the land where the panel is installed.
557
+ May be null.
558
+ land_owner:
559
+ type: string
560
+ nullable: true
561
+ example: "Hlavni mesto Praha"
562
+ description: >-
563
+ Owner of the land parcel. May be null.
564
+ workday_boarding_count:
565
+ type: integer
566
+ nullable: true
567
+ example: 1250
568
+ description: >-
569
+ Average number of passengers boarding at this stop on a workday.
570
+ Integer count. May be null.
571
+ lines:
572
+ type: string
573
+ nullable: true
574
+ example: "9, 22, 57"
575
+ description: >-
576
+ Comma-separated list of line numbers served at the stop.
577
+ May be null.
578
+ location_description:
579
+ type: string
580
+ nullable: true
581
+ example: "At the corner of Anglicka and Blanicka streets"
582
+ description: >-
583
+ Free-text description of the panel's physical location.
584
+ May be null.
585
+ location_verification_on_street_light:
586
+ type: string
587
+ nullable: true
588
+ example: "VO-12345"
589
+ description: >-
590
+ Reference to the street light pole used to verify installation
591
+ position. May be null.
592
+ shelter_type:
593
+ type: string
594
+ nullable: true
595
+ example: "standard"
596
+ description: >-
597
+ Type or model of the shelter associated with this panel.
598
+ May be null.
599
+ shelter_id:
600
+ type: string
601
+ nullable: true
602
+ example: "SH-0042"
603
+ description: >-
604
+ Identifier of the shelter associated with this panel.
605
+ May be null.
606
+ street_light_number:
607
+ type: string
608
+ nullable: true
609
+ example: "VO-00123"
610
+ description: >-
611
+ Reference number of the street light pole carrying this panel.
612
+ May be null.
613
+ surface_type:
614
+ type: string
615
+ nullable: true
616
+ example: "asphalt"
617
+ description: >-
618
+ Type of ground surface at the installation site. May be null.
619
+ connection_state:
620
+ type: string
621
+ nullable: true
622
+ example: "connected"
623
+ description: >-
624
+ Current connectivity state of the panel (e.g. connected,
625
+ disconnected, pending). May be null.
626
+ connection_type:
627
+ type: string
628
+ nullable: true
629
+ example: "ethernet"
630
+ description: >-
631
+ Technology used for the panel's data connection (e.g. ethernet,
632
+ GSM, LTE). May be null.
633
+ connection_mode:
634
+ type: string
635
+ nullable: true
636
+ example: "static_ip"
637
+ description: >-
638
+ Network addressing mode used for the panel connection.
639
+ May be null.
640
+ priority:
641
+ type: string
642
+ nullable: true
643
+ example: "high"
644
+ description: >-
645
+ Installation or maintenance priority assigned to this panel.
646
+ May be null.
647
+ investor_action:
648
+ type: string
649
+ nullable: true
650
+ example: "ROPID-2024-001"
651
+ description: >-
652
+ Investor action or project reference linked to this panel.
653
+ May be null.
654
+ design_request:
655
+ type: string
656
+ nullable: true
657
+ example: "PR-2024-042"
658
+ description: >-
659
+ Reference identifier for the design (projekce) request.
660
+ May be null.
661
+ design_state:
662
+ type: string
663
+ nullable: true
664
+ example: "completed"
665
+ description: >-
666
+ Current state of the design phase. May be null.
667
+ design_order_number:
668
+ type: string
669
+ nullable: true
670
+ example: "OBJ-PROJ-2024-042"
671
+ description: >-
672
+ Order number issued for the design phase. May be null.
673
+ design_registry_publication:
674
+ type: string
675
+ nullable: true
676
+ example: "2024/042"
677
+ description: >-
678
+ Publication reference in the public procurement registry for the
679
+ design order. May be null.
680
+ design_invoice_paid:
681
+ type: string
682
+ nullable: true
683
+ example: "yes"
684
+ description: >-
685
+ Indicates whether the design phase invoice has been paid.
686
+ May be null.
687
+ production_order_number:
688
+ type: string
689
+ nullable: true
690
+ example: "OBJ-VYR-2024-042"
691
+ description: >-
692
+ Order number issued for the production (vyroba) phase. May be null.
693
+ production_state:
694
+ type: string
695
+ nullable: true
696
+ example: "in_progress"
697
+ description: >-
698
+ Current state of the production phase. May be null.
699
+ production_registry_publication:
700
+ type: string
701
+ nullable: true
702
+ example: "2024/142"
703
+ description: >-
704
+ Publication reference in the public procurement registry for the
705
+ production order. May be null.
706
+ production_invoice_paid:
707
+ type: string
708
+ nullable: true
709
+ example: "no"
710
+ description: >-
711
+ Indicates whether the production phase invoice has been paid.
712
+ May be null.
713
+ realization_request:
714
+ type: boolean
715
+ nullable: true
716
+ example: true
717
+ description: >-
718
+ Whether a realization (realizace) request has been raised for
719
+ this panel. May be null.
720
+ realization_state:
721
+ type: string
722
+ nullable: true
723
+ example: "pending"
724
+ description: >-
725
+ Current state of the realization phase. May be null.
726
+ realization_order_number:
727
+ type: string
728
+ nullable: true
729
+ example: "OBJ-REA-2024-042"
730
+ description: >-
731
+ Order number issued for the realization phase. May be null.
732
+ realization_registry_publication:
733
+ type: string
734
+ nullable: true
735
+ example: "2024/242"
736
+ description: >-
737
+ Publication reference in the public procurement registry for the
738
+ realization order. May be null.
739
+ realization_invoice_paid:
740
+ type: string
741
+ nullable: true
742
+ example: "yes"
743
+ description: >-
744
+ Indicates whether the realization phase invoice has been paid.
745
+ May be null.
746
+ name_for_visually_impaired:
747
+ type: string
748
+ nullable: true
749
+ example: "Palackeho namesti, smer Smichov"
750
+ description: >-
751
+ Accessible name of the stop used in audio announcements for
752
+ visually impaired passengers. May be null.
753
+ voice_day:
754
+ type: string
755
+ nullable: true
756
+ example: "08:00-22:00"
757
+ description: >-
758
+ Voice announcement schedule for daytime operation. May be null.
759
+ voice_night:
760
+ type: string
761
+ nullable: true
762
+ example: "22:00-08:00"
763
+ description: >-
764
+ Voice announcement schedule for night-time operation. May be null.
765
+ templates:
766
+ type: string
767
+ nullable: true
768
+ example: "template_v3"
769
+ description: >-
770
+ Display template identifier or name used to render content on
771
+ this panel. May be null.
772
+ preset:
773
+ type: string
774
+ nullable: true
775
+ example: "default"
776
+ description: >-
777
+ Preset configuration profile applied to this panel. May be null.
778
+ data_source:
779
+ type: string
780
+ nullable: true
781
+ example: "golemio"
782
+ description: >-
783
+ Identifier of the data source feeding real-time information to
784
+ this panel. May be null.
785
+ imsi:
786
+ type: string
787
+ nullable: true
788
+ example: "230013000012345"
789
+ description: >-
790
+ IMSI (International Mobile Subscriber Identity) of the SIM card
791
+ installed in this panel. May be null.
792
+ connection_point:
793
+ type: string
794
+ nullable: true
795
+ example: "cabinet-A3"
796
+ description: >-
797
+ Identifier of the electrical or network connection point used by
798
+ this panel. May be null.
799
+ connection_point_number:
800
+ type: string
801
+ nullable: true
802
+ example: "CP-007"
803
+ description: >-
804
+ Sequential number of the connection point within its cabinet or
805
+ junction. May be null.
806
+ foundation_type:
807
+ type: string
808
+ nullable: true
809
+ example: "concrete_block"
810
+ description: >-
811
+ Type of physical foundation used to mount the panel. May be null.
812
+ warranty_end:
813
+ type: string
814
+ format: date
815
+ nullable: true
816
+ example: "2027-12-31"
817
+ description: >-
818
+ Date on which the manufacturer's warranty for this panel expires.
819
+ ISO 8601 date. May be null.
820
+ initial_revision:
821
+ type: string
822
+ format: date
823
+ nullable: true
824
+ example: "2024-06-01"
825
+ description: >-
826
+ Date of the first technical revision carried out on this panel.
827
+ ISO 8601 date. May be null.
828
+ next_revision:
829
+ type: string
830
+ format: date
831
+ nullable: true
832
+ example: "2025-06-01"
833
+ description: >-
834
+ Date of the next scheduled technical revision. ISO 8601 date.
835
+ May be null.
836
+ electronics_service:
837
+ type: boolean
838
+ nullable: true
839
+ example: true
840
+ description: >-
841
+ Whether the panel is covered by an electronics service contract.
842
+ May be null.
843
+ electronics_service_end:
844
+ type: string
845
+ format: date
846
+ nullable: true
847
+ example: "2026-03-31"
848
+ description: >-
849
+ Date on which the electronics service contract expires.
850
+ ISO 8601 date. May be null.
851
+ asset_registered:
852
+ type: boolean
853
+ nullable: true
854
+ example: true
855
+ description: >-
856
+ Whether this panel has been registered in the asset management
857
+ system. May be null.
858
+ asset_number:
859
+ type: string
860
+ nullable: true
861
+ example: "MAJ-2024-0042"
862
+ description: >-
863
+ Asset management system identifier for this panel. May be null.
864
+ insurance:
865
+ type: boolean
866
+ nullable: true
867
+ example: false
868
+ description: >-
869
+ Whether this panel is covered by an insurance policy. May be null.
870
+ handed_over_to_ozp:
871
+ type: boolean
872
+ nullable: true
873
+ example: true
874
+ description: >-
875
+ Whether this panel has been formally handed over to OZP
876
+ (Odbor zelene a pro verejny prostor) for management. May be null.
877
+ dpp_documentation_request:
878
+ type: boolean
879
+ nullable: true
880
+ example: true
881
+ description: >-
882
+ Whether documentation for DPP (Dopravni podnik Praha) has been
883
+ requested. May be null.
884
+ dpp_documentation_handover_date:
885
+ type: string
886
+ format: date
887
+ nullable: true
888
+ example: "2024-09-15"
889
+ description: >-
890
+ Date on which documentation was handed over to DPP.
891
+ ISO 8601 date. May be null.
892
+ design_deadline:
893
+ type: string
894
+ format: date
895
+ nullable: true
896
+ example: "2024-04-30"
897
+ description: >-
898
+ Contractual deadline for completing the design phase.
899
+ ISO 8601 date. May be null.
900
+ production_deadline:
901
+ type: string
902
+ format: date
903
+ nullable: true
904
+ example: "2024-07-31"
905
+ description: >-
906
+ Contractual deadline for completing the production phase.
907
+ ISO 8601 date. May be null.
908
+ ropid_documentation_submitted:
909
+ type: array
910
+ nullable: true
911
+ items:
912
+ type: string
913
+ example:
914
+ - "technical_drawing"
915
+ - "site_plan"
916
+ description: >-
917
+ List of document types submitted to ROPID as part of the
918
+ documentation package. May be null.
919
+ ropid_documentation_handover_date:
920
+ type: string
921
+ format: date
922
+ nullable: true
923
+ example: "2024-08-20"
924
+ description: >-
925
+ Date on which documentation was handed over to ROPID.
926
+ ISO 8601 date. May be null.
927
+ dpp_documentation_submitted:
928
+ type: array
929
+ nullable: true
930
+ items:
931
+ type: string
932
+ example:
933
+ - "installation_protocol"
934
+ description: >-
935
+ List of document types submitted to DPP as part of the
936
+ documentation package. May be null.
937
+ realization_deadline:
938
+ type: string
939
+ format: date
940
+ nullable: true
941
+ example: "2024-10-31"
942
+ description: >-
943
+ Contractual deadline for completing the realization phase.
944
+ ISO 8601 date. May be null.
945
+ device_id:
946
+ type: string
947
+ nullable: true
948
+ example: "DEV-00789"
949
+ description: >-
950
+ Unique device identifier assigned to the panel's embedded
951
+ hardware unit. May be null.
952
+ asw_node_id:
953
+ type: string
954
+ nullable: true
955
+ example: "U953N1"
956
+ description: >-
957
+ Node identifier in the ASW (Automatizovany system rizeni) network
958
+ registry. May be null.
959
+ asw_stop_id:
960
+ type: string
961
+ nullable: true
962
+ example: "U953"
963
+ description: >-
964
+ Stop identifier in the ASW network registry. May be null.
965
+ power_consumption_watt:
966
+ type: number
967
+ format: float
968
+ nullable: true
969
+ example: 45.5
970
+ description: >-
971
+ Rated power consumption of the panel in watts. Decimal values
972
+ are permitted. May be null.
973
+ thmp_element_number:
974
+ type: string
975
+ nullable: true
976
+ example: "THMP-0042"
977
+ description: >-
978
+ Element number assigned in the THMP registry. May be null.
979
+ electricity_supply_contract:
980
+ type: string
981
+ nullable: true
982
+ example: "ELC-2022-0017"
983
+ description: >-
984
+ Reference number of the electricity supply contract for this
985
+ panel. May be null.
986
+ cleaning_frequency:
987
+ type: string
988
+ nullable: true
989
+ example: "monthly"
990
+ description: >-
991
+ Scheduled cleaning frequency for this panel. May be null.
992
+ electricity_consumption_price:
993
+ type: number
994
+ format: float
995
+ nullable: true
996
+ example: 3.75
997
+ description: >-
998
+ Unit price per kWh charged under the electricity supply contract.
999
+ Decimal values are permitted. May be null.
1000
+ construction_type:
1001
+ type: string
1002
+ nullable: true
1003
+ example: "pole_mounted"
1004
+ description: >-
1005
+ Type of physical construction used for this panel
1006
+ (e.g. pole_mounted, wall_mounted, freestanding). May be null.
1007
+ panel_size:
1008
+ type: string
1009
+ nullable: true
1010
+ example: "70x100"
1011
+ description: >-
1012
+ Display dimensions of the panel in centimetres (width x height).
1013
+ May be null.
1014
+ design_price_without_vat:
1015
+ type: number
1016
+ format: float
1017
+ nullable: true
1018
+ example: 25000.00
1019
+ description: >-
1020
+ Contracted price for the design phase excluding VAT, in CZK.
1021
+ May be null.
1022
+ production_price_without_vat:
1023
+ type: number
1024
+ format: float
1025
+ nullable: true
1026
+ example: 85000.00
1027
+ description: >-
1028
+ Contracted price for the production phase excluding VAT, in CZK.
1029
+ May be null.
1030
+ realization_price_without_vat:
1031
+ type: number
1032
+ format: float
1033
+ nullable: true
1034
+ example: 35000.00
1035
+ description: >-
1036
+ Contracted price for the realization phase excluding VAT, in CZK.
1037
+ May be null.
1038
+ serial_number:
1039
+ type: string
1040
+ nullable: true
1041
+ example: "SN-2024-00042"
1042
+ description: >-
1043
+ Manufacturer's serial number of the panel unit. May be null.
1044
+
1045
+ Obelisk:
1046
+ description: >-
1047
+ Fully composed obelisk schema for list responses. Combines all writable
1048
+ obelisk-specific fields (ObeliskBase, which itself includes ElementBase) with
1049
+ server-set read-only fields (ElementReadOnly). The id and source_updated_at
1050
+ fields are required on every record returned by the API.
1051
+ allOf:
1052
+ - $ref: "#/components/schemas/ElementReadOnly"
1053
+ - $ref: "#/components/schemas/ObeliskBase"
1054
+ - type: object
1055
+ required:
1056
+ - id
1057
+ - source_updated_at
1058
+
1059
+ ObeliskBase:
1060
+ description: >-
1061
+ Writable obelisk-specific fields extending ElementBase. Contains the 14
1062
+ type-specific properties for the obelisk element type. Compose via allOf
1063
+ with ElementBase to obtain the full writable surface.
1064
+ allOf:
1065
+ - $ref: "#/components/schemas/ElementBase"
1066
+ - type: object
1067
+ properties:
1068
+ street_name:
1069
+ type: string
1070
+ nullable: true
1071
+ example: "Vaclavske namesti"
1072
+ description: >-
1073
+ Name of the street where the obelisk is physically located.
1074
+ May be null if the street name is not recorded.
1075
+ location_description:
1076
+ type: string
1077
+ nullable: true
1078
+ example: "Near the main entrance of the metro station, pillar B."
1079
+ description: >-
1080
+ Free-text description of the obelisk's exact placement within
1081
+ its location. May be null.
1082
+ land_parcel_number:
1083
+ type: string
1084
+ nullable: true
1085
+ example: "1234/5"
1086
+ description: >-
1087
+ Cadastral land parcel number identifying the plot on which the
1088
+ obelisk stands. May be null.
1089
+ land_owner:
1090
+ type: string
1091
+ nullable: true
1092
+ example: "Hlavni mesto Praha"
1093
+ description: >-
1094
+ Name of the entity that owns the land parcel where the obelisk
1095
+ is installed. May be null.
1096
+ priority:
1097
+ type: string
1098
+ nullable: true
1099
+ example: "HIGH"
1100
+ description: >-
1101
+ Operational priority assigned to the obelisk for maintenance
1102
+ scheduling purposes. May be null.
1103
+ asset_registered:
1104
+ type: boolean
1105
+ nullable: true
1106
+ example: true
1107
+ description: >-
1108
+ Indicates whether the obelisk is formally registered in the
1109
+ asset management system. May be null if the status is unknown.
1110
+ asset_number:
1111
+ type: string
1112
+ nullable: true
1113
+ example: "MAJ-2024-00123"
1114
+ description: >-
1115
+ Asset inventory number assigned when the obelisk is registered
1116
+ in the asset management system. May be null.
1117
+ insurance:
1118
+ type: boolean
1119
+ nullable: true
1120
+ example: true
1121
+ description: >-
1122
+ Indicates whether the obelisk is covered by an insurance
1123
+ policy. May be null if insurance status is not recorded.
1124
+ insurance_state:
1125
+ type: string
1126
+ nullable: true
1127
+ example: "ACTIVE"
1128
+ description: >-
1129
+ Current state of the insurance policy for the obelisk
1130
+ (e.g. ACTIVE, EXPIRED). May be null.
1131
+ handed_over_to_ozp:
1132
+ type: boolean
1133
+ nullable: true
1134
+ example: false
1135
+ description: >-
1136
+ Indicates whether the obelisk has been formally handed over to
1137
+ the OZP (Odbor zelene a prostredi) department for ongoing
1138
+ management. May be null.
1139
+ comments:
1140
+ type: string
1141
+ nullable: true
1142
+ example: "Surface damage reported on the north face. Scheduled for repair Q3 2025."
1143
+ description: >-
1144
+ Free-text comments or operational notes associated with the
1145
+ obelisk. May be null.
1146
+ ropid_element_id:
1147
+ type: string
1148
+ nullable: true
1149
+ example: "ROPID-OBL-0042"
1150
+ description: >-
1151
+ Identifier assigned to this element within the ROPID external
1152
+ registry. May be null for elements not yet registered with ROPID.
1153
+ construction_type:
1154
+ type: string
1155
+ nullable: true
1156
+ example: "STEEL_FRAME"
1157
+ description: >-
1158
+ Type of construction used for the obelisk (e.g. STEEL_FRAME,
1159
+ CONCRETE, COMPOSITE). May be null.
1160
+ price_without_vat:
1161
+ type: number
1162
+ nullable: true
1163
+ example: 85000.00
1164
+ description: >-
1165
+ Procurement or installation cost of the obelisk excluding VAT,
1166
+ expressed in the local currency (CZK). May be null if the cost
1167
+ is not recorded.
1168
+
1169
+ Signpost:
1170
+ description: >-
1171
+ Fully composed Signpost schema including all writable base fields
1172
+ (via SignpostBase -> ElementBase), all 16 type-specific fields, and
1173
+ server-set read-only fields (ElementReadOnly). Use as the response
1174
+ schema for the GET /v1/signposts list endpoint.
1175
+ allOf:
1176
+ - $ref: "#/components/schemas/ElementReadOnly"
1177
+ - $ref: "#/components/schemas/SignpostBase"
1178
+ - type: object
1179
+ required:
1180
+ - id
1181
+ - source_updated_at
1182
+
1183
+ SignpostBase:
1184
+ description: >-
1185
+ Writable fields for a Signpost element. Composes ElementBase via allOf and
1186
+ adds 16 type-specific properties.
1187
+ allOf:
1188
+ - $ref: "#/components/schemas/ElementBase"
1189
+ - type: object
1190
+ properties:
1191
+ street_name:
1192
+ type: string
1193
+ nullable: true
1194
+ example: "Evropska"
1195
+ description: >-
1196
+ Name of the street where the signpost is located.
1197
+ May be null if not yet recorded.
1198
+ location_description:
1199
+ type: string
1200
+ nullable: true
1201
+ example: "Near bus stop exit B, adjacent to pedestrian crossing"
1202
+ description: >-
1203
+ Free-text description of the precise installation location.
1204
+ May be null if not yet recorded.
1205
+ land_parcel_number:
1206
+ type: string
1207
+ nullable: true
1208
+ example: "1234/5"
1209
+ description: >-
1210
+ Cadastral land parcel number of the plot on which the signpost
1211
+ is installed. May be null.
1212
+ land_owner:
1213
+ type: string
1214
+ nullable: true
1215
+ example: "Hlavni mesto Praha"
1216
+ description: >-
1217
+ Name of the land parcel owner. May be null if ownership has not
1218
+ been determined.
1219
+ street_light_number:
1220
+ type: string
1221
+ nullable: true
1222
+ example: "VO-12345"
1223
+ description: >-
1224
+ Identifier of the street-light pole the signpost is attached to.
1225
+ May be null if not attached to a street-light pole.
1226
+ sheet_count:
1227
+ type: integer
1228
+ nullable: true
1229
+ example: 4
1230
+ description: >-
1231
+ Number of direction sheets (panels) mounted on the signpost.
1232
+ Whole number. May be null if not yet counted.
1233
+ priority:
1234
+ type: string
1235
+ nullable: true
1236
+ example: "HIGH"
1237
+ description: >-
1238
+ Installation or maintenance priority classification assigned to
1239
+ this signpost. May be null.
1240
+ asset_registered:
1241
+ type: boolean
1242
+ nullable: true
1243
+ example: true
1244
+ description: >-
1245
+ Indicates whether the signpost is registered in the asset
1246
+ management system. May be null if registration status is unknown.
1247
+ asset_number:
1248
+ type: string
1249
+ nullable: true
1250
+ example: "MAJ-2024-00789"
1251
+ description: >-
1252
+ Asset management system identifier for the signpost.
1253
+ May be null if the signpost is not yet registered.
1254
+ insurance:
1255
+ type: boolean
1256
+ nullable: true
1257
+ example: true
1258
+ description: >-
1259
+ Indicates whether the signpost is covered by an insurance policy.
1260
+ May be null if insurance status is unknown.
1261
+ insurance_state:
1262
+ type: string
1263
+ nullable: true
1264
+ example: "ACTIVE"
1265
+ description: >-
1266
+ Current state of the insurance coverage for the signpost
1267
+ (e.g. ACTIVE, EXPIRED). May be null.
1268
+ handed_over_to_ozp:
1269
+ type: boolean
1270
+ nullable: true
1271
+ example: false
1272
+ description: >-
1273
+ Indicates whether the signpost has been formally handed over
1274
+ to OZP (maintenance department) for ongoing administration.
1275
+ May be null.
1276
+ comments:
1277
+ type: string
1278
+ nullable: true
1279
+ example: "Requires re-painting before next season."
1280
+ description: >-
1281
+ Free-text comments or operational notes recorded by field staff.
1282
+ May be null.
1283
+ ropid_element_id:
1284
+ type: string
1285
+ nullable: true
1286
+ example: "ROPID-SGP-00456"
1287
+ description: >-
1288
+ Identifier assigned to this signpost within the ROPID system.
1289
+ May be null if no ROPID identifier has been assigned.
1290
+ construction_type:
1291
+ type: string
1292
+ nullable: true
1293
+ example: "STEEL_POLE"
1294
+ description: >-
1295
+ Type of construction or structural form of the signpost
1296
+ (e.g. STEEL_POLE, WALL_MOUNTED). May be null.
1297
+ price_without_vat:
1298
+ type: number
1299
+ format: double
1300
+ nullable: true
1301
+ example: 15800.00
1302
+ description: >-
1303
+ Procurement or installation price of the signpost, excluding VAT.
1304
+ Currency is CZK. May be null if pricing data is unavailable.
1305
+
1306
+ Totem:
1307
+ description: >-
1308
+ Fully composed Totem schema for list responses. Combines TotemBase (writable fields
1309
+ including ElementBase), ElementReadOnly (server-set id and timestamps). Use this
1310
+ schema for items in the GET /v1/totems list response.
1311
+ allOf:
1312
+ - $ref: "#/components/schemas/ElementReadOnly"
1313
+ - $ref: "#/components/schemas/TotemBase"
1314
+ - type: object
1315
+ required:
1316
+ - id
1317
+ - source_updated_at
1318
+
1319
+ TotemBase:
1320
+ description: >-
1321
+ Writable base fields for the Totem element type. Extends ElementBase via allOf,
1322
+ adding 51 Totem-specific properties. No id or timestamps (those come from
1323
+ ElementReadOnly). Used for create/update request bodies and composed into Totem.
1324
+ allOf:
1325
+ - $ref: "#/components/schemas/ElementBase"
1326
+ - type: object
1327
+ properties:
1328
+ panel_size:
1329
+ type: string
1330
+ nullable: true
1331
+ example: "2400x900"
1332
+ description: >-
1333
+ Physical size of the totem's display panel (width x height in mm).
1334
+ May be null if not yet specified.
1335
+ locality:
1336
+ type: string
1337
+ nullable: true
1338
+ example: "Palackeho namesti"
1339
+ description: >-
1340
+ Named locality or area where the totem is installed.
1341
+ May be null.
1342
+ displayed_icon:
1343
+ type: array
1344
+ nullable: true
1345
+ items:
1346
+ type: string
1347
+ example:
1348
+ - "metro_a"
1349
+ - "bus"
1350
+ description: >-
1351
+ List of icon identifiers displayed on the totem face (e.g. transit
1352
+ mode icons). May be null if no icons are configured.
1353
+ line:
1354
+ type: array
1355
+ nullable: true
1356
+ items:
1357
+ type: string
1358
+ example:
1359
+ - "119"
1360
+ - "218"
1361
+ description: >-
1362
+ Transit line identifiers served at or referenced by this totem.
1363
+ May be null.
1364
+ priority:
1365
+ type: integer
1366
+ nullable: true
1367
+ example: 1
1368
+ description: >-
1369
+ Installation or operational priority rank for this totem.
1370
+ Integer value; lower numbers indicate higher priority.
1371
+ May be null.
1372
+ site_survey:
1373
+ type: string
1374
+ nullable: true
1375
+ example: "Provedeno 2024-03-15"
1376
+ description: >-
1377
+ Free-text record of the site survey result or reference.
1378
+ May be null if no survey has been conducted.
1379
+ installation_height:
1380
+ type: string
1381
+ nullable: true
1382
+ example: "3.5m"
1383
+ description: >-
1384
+ Height at which the totem is or will be installed.
1385
+ Stored as a string to accommodate unit suffixes.
1386
+ May be null.
1387
+ street_light_number:
1388
+ type: string
1389
+ nullable: true
1390
+ example: "VO-12345"
1391
+ description: >-
1392
+ Identifier of the street light pole to which the totem is attached,
1393
+ if applicable. May be null.
1394
+ street_light_replacement:
1395
+ type: string
1396
+ nullable: true
1397
+ example: "Nahrazeno 2023-06"
1398
+ description: >-
1399
+ Record or date of street light replacement associated with this
1400
+ totem installation. May be null.
1401
+ tv_number:
1402
+ type: string
1403
+ nullable: true
1404
+ example: "TV-00987"
1405
+ description: >-
1406
+ Technical verification (TV) number assigned to this totem.
1407
+ May be null.
1408
+ building_permit:
1409
+ type: boolean
1410
+ nullable: true
1411
+ example: true
1412
+ description: >-
1413
+ Indicates whether a building permit has been obtained for this
1414
+ totem installation. May be null if status is unknown.
1415
+ building_permit_state:
1416
+ type: string
1417
+ nullable: true
1418
+ example: "GRANTED"
1419
+ description: >-
1420
+ Current state of the building permit process
1421
+ (e.g. PENDING, GRANTED, NOT_REQUIRED). May be null.
1422
+ location_note:
1423
+ type: string
1424
+ nullable: true
1425
+ example: "Umisteno vedle vchodu A, celem na jih."
1426
+ description: >-
1427
+ Free-text note describing the precise physical placement of
1428
+ the totem at its site. May be null.
1429
+ site_survey_report:
1430
+ type: string
1431
+ nullable: true
1432
+ example: "Zprava MS 2024-03-15"
1433
+ description: >-
1434
+ Reference or summary of the formal site survey report.
1435
+ May be null if no report exists.
1436
+ order_state:
1437
+ type: string
1438
+ nullable: true
1439
+ example: "IN_PROGRESS"
1440
+ description: >-
1441
+ Current state of the procurement order for this totem
1442
+ (e.g. DRAFT, SUBMITTED, IN_PROGRESS, COMPLETED). May be null.
1443
+ order_number:
1444
+ type: string
1445
+ nullable: true
1446
+ example: "OBJ-2024-0042"
1447
+ description: >-
1448
+ Procurement order number associated with this totem.
1449
+ May be null if no order has been raised.
1450
+ design_price_without_vat:
1451
+ type: number
1452
+ format: double
1453
+ nullable: true
1454
+ example: 45000.00
1455
+ description: >-
1456
+ Projected design/engineering cost for this totem, excluding VAT
1457
+ (Czech crowns). May be null.
1458
+ realization_price_without_vat:
1459
+ type: number
1460
+ format: double
1461
+ nullable: true
1462
+ example: 280000.00
1463
+ description: >-
1464
+ Actual realization (installation) cost for this totem, excluding
1465
+ VAT (Czech crowns). May be null.
1466
+ warranty_end:
1467
+ type: string
1468
+ format: date
1469
+ nullable: true
1470
+ example: "2027-06-30"
1471
+ description: >-
1472
+ Date on which the manufacturer or installer warranty expires.
1473
+ ISO 8601 date. May be null.
1474
+ next_revision:
1475
+ type: string
1476
+ format: date
1477
+ nullable: true
1478
+ example: "2025-12-01"
1479
+ description: >-
1480
+ Scheduled date of the next technical revision or inspection.
1481
+ ISO 8601 date. May be null.
1482
+ qr_code:
1483
+ type: string
1484
+ nullable: true
1485
+ example: "https://fypr.ropid.cz/totem/1b75c16b"
1486
+ description: >-
1487
+ URL or value encoded in the QR code affixed to this totem for
1488
+ field identification. May be null.
1489
+ supplier:
1490
+ type: string
1491
+ nullable: true
1492
+ example: "AGB Czech s.r.o."
1493
+ description: >-
1494
+ Name of the supplier or manufacturer of this totem.
1495
+ May be null.
1496
+ stop_name:
1497
+ type: string
1498
+ nullable: true
1499
+ example: "Palackeho namesti"
1500
+ description: >-
1501
+ Name of the public transport stop associated with this totem.
1502
+ May be null.
1503
+ stop_type:
1504
+ type: array
1505
+ nullable: true
1506
+ items:
1507
+ type: string
1508
+ example:
1509
+ - "bus"
1510
+ - "tram"
1511
+ description: >-
1512
+ List of transport mode types at the associated stop
1513
+ (e.g. bus, tram, metro). May be null.
1514
+ site_survey_date:
1515
+ type: string
1516
+ nullable: true
1517
+ example: "2024-03-15"
1518
+ description: >-
1519
+ Date on which the site survey was conducted. Stored as a plain
1520
+ string. May be null if no survey has been performed.
1521
+ order_planned_deadline:
1522
+ type: string
1523
+ format: date
1524
+ nullable: true
1525
+ example: "2024-09-30"
1526
+ description: >-
1527
+ Planned deadline date for completion of the procurement order.
1528
+ ISO 8601 date. May be null.
1529
+ order_registry_publication:
1530
+ type: boolean
1531
+ nullable: true
1532
+ example: true
1533
+ description: >-
1534
+ Indicates whether the procurement order has been published in the
1535
+ public contracts registry. May be null.
1536
+ invoice_paid:
1537
+ type: boolean
1538
+ nullable: true
1539
+ example: false
1540
+ description: >-
1541
+ Indicates whether the invoice for this totem has been paid.
1542
+ May be null if payment status is unknown.
1543
+ initial_revision:
1544
+ type: string
1545
+ format: date
1546
+ nullable: true
1547
+ example: "2024-01-10"
1548
+ description: >-
1549
+ Date of the initial (commissioning) technical revision.
1550
+ ISO 8601 date. May be null.
1551
+ asset_registered:
1552
+ type: boolean
1553
+ nullable: true
1554
+ example: true
1555
+ description: >-
1556
+ Indicates whether this totem has been registered as a fixed asset
1557
+ in the accounting system. May be null.
1558
+ asset_number:
1559
+ type: string
1560
+ nullable: true
1561
+ example: "MAJ-2024-00123"
1562
+ description: >-
1563
+ Fixed asset register number assigned to this totem.
1564
+ May be null if not yet registered.
1565
+ insurance:
1566
+ type: boolean
1567
+ nullable: true
1568
+ example: true
1569
+ description: >-
1570
+ Indicates whether this totem is covered by an insurance policy.
1571
+ May be null.
1572
+ handed_over_to_ozp:
1573
+ type: boolean
1574
+ nullable: true
1575
+ example: false
1576
+ description: >-
1577
+ Indicates whether the totem has been formally handed over to the
1578
+ OZP (public space department) for ongoing maintenance.
1579
+ May be null.
1580
+ ropid_documentation_submitted:
1581
+ type: array
1582
+ nullable: true
1583
+ items:
1584
+ type: string
1585
+ example:
1586
+ - "technical_spec"
1587
+ - "as_built_drawing"
1588
+ description: >-
1589
+ List of documentation items submitted to ROPID as part of the
1590
+ handover package. May be null.
1591
+ ropid_documentation_handover_date:
1592
+ type: string
1593
+ format: date
1594
+ nullable: true
1595
+ example: "2024-08-20"
1596
+ description: >-
1597
+ Date on which the documentation package was handed over to ROPID.
1598
+ ISO 8601 date. May be null.
1599
+ street_name:
1600
+ type: string
1601
+ nullable: true
1602
+ example: "Palackeho"
1603
+ description: >-
1604
+ Name of the street where this totem is located.
1605
+ May be null.
1606
+ exit_number:
1607
+ type: string
1608
+ nullable: true
1609
+ example: "B"
1610
+ description: >-
1611
+ Exit identifier (e.g. metro station exit letter or number) nearest
1612
+ to this totem's installation point. May be null.
1613
+ dpp_priority:
1614
+ type: integer
1615
+ nullable: true
1616
+ example: 2
1617
+ description: >-
1618
+ Prague Public Transit (DPP) internal priority rank for this totem.
1619
+ Lower values indicate higher priority. May be null.
1620
+ insurance_state:
1621
+ type: string
1622
+ nullable: true
1623
+ example: "ACTIVE"
1624
+ description: >-
1625
+ Current state of the insurance coverage for this totem
1626
+ (e.g. ACTIVE, EXPIRED, NOT_REQUIRED). May be null.
1627
+ comments:
1628
+ type: string
1629
+ nullable: true
1630
+ example: "Potrebuje revizi spojeni s VO."
1631
+ description: >-
1632
+ Free-text comments or operational remarks about this totem.
1633
+ May be null.
1634
+ asw_node_id:
1635
+ type: string
1636
+ nullable: true
1637
+ example: "U12345"
1638
+ description: >-
1639
+ Node identifier in the ASW (automated stop information system)
1640
+ associated with this totem's location. May be null.
1641
+ asw_stop_id:
1642
+ type: string
1643
+ nullable: true
1644
+ example: "Z12345"
1645
+ description: >-
1646
+ Stop identifier in the ASW system linked to this totem.
1647
+ May be null.
1648
+ power_consumption_watt:
1649
+ type: number
1650
+ format: double
1651
+ nullable: true
1652
+ example: 120.5
1653
+ description: >-
1654
+ Rated power consumption of this totem in watts.
1655
+ May be null if not measured.
1656
+ thmp_element_number:
1657
+ type: string
1658
+ nullable: true
1659
+ example: "THMP-2024-00456"
1660
+ description: >-
1661
+ Element number assigned within the THMP (Technical Management
1662
+ of Public Infrastructure) register. May be null.
1663
+ electricity_supply_contract:
1664
+ type: string
1665
+ nullable: true
1666
+ example: "EIC-CZ-00123456789"
1667
+ description: >-
1668
+ Identifier or reference of the electricity supply contract
1669
+ for this totem. May be null.
1670
+ cleaning_frequency:
1671
+ type: string
1672
+ nullable: true
1673
+ example: "monthly"
1674
+ description: >-
1675
+ Scheduled cleaning frequency for this totem
1676
+ (e.g. weekly, monthly, quarterly). May be null.
1677
+ electricity_consumption_price:
1678
+ type: number
1679
+ format: double
1680
+ nullable: true
1681
+ example: 3500.00
1682
+ description: >-
1683
+ Annual electricity consumption cost for this totem in Czech crowns,
1684
+ excluding VAT. May be null.
1685
+ ropid_element_id:
1686
+ type: string
1687
+ nullable: true
1688
+ example: "ROPID-T-00789"
1689
+ description: >-
1690
+ Element identifier assigned by ROPID in their own internal register.
1691
+ May be null.
1692
+ construction_type:
1693
+ type: string
1694
+ nullable: true
1695
+ example: "STANDALONE"
1696
+ description: >-
1697
+ Construction or mounting type of the totem
1698
+ (e.g. STANDALONE, POLE_MOUNTED, WALL_MOUNTED). May be null.
1699
+ price_without_vat:
1700
+ type: number
1701
+ format: double
1702
+ nullable: true
1703
+ example: 320000.00
1704
+ description: >-
1705
+ Total purchase price of this totem unit, excluding VAT
1706
+ (Czech crowns). May be null.
1707
+ serial_number:
1708
+ type: string
1709
+ nullable: true
1710
+ example: "SN-2024-AGB-00321"
1711
+ description: >-
1712
+ Manufacturer's serial number of this totem unit.
1713
+ May be null.
47
1714
 
48
1715
  responses:
49
1716
  BadRequestError:
@@ -91,5 +1758,3 @@ components:
91
1758
  required:
92
1759
  - error_message
93
1760
  - error_status
94
-
95
- # TODO schemas: