@golemio/fypr 1.0.1 → 1.0.2-dev.2343920210

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 (190) hide show
  1. package/db/example/00_clear_test_data.sql +7 -7
  2. package/db/example/01_display_cases.sql +4 -0
  3. package/db/example/02_information_panels.sql +4 -0
  4. package/db/example/03_obelisks.sql +4 -0
  5. package/db/example/04_signposts.sql +2 -0
  6. package/db/example/05_totems.sql +4 -0
  7. package/db/migrations/postgresql/20260212140121-init-dbfypr-integration.js +53 -0
  8. package/db/migrations/postgresql/package.json +3 -0
  9. package/db/migrations/postgresql/sqls/20260212140121-init-dbfypr-integration-down.sql +9 -0
  10. package/db/migrations/postgresql/sqls/20260212140121-init-dbfypr-integration-up.sql +242 -0
  11. package/db/migrations/postgresql/sqls/package.json +3 -0
  12. package/dist/helpers/errors/ErrorHelper.d.ts +4 -0
  13. package/dist/helpers/errors/ErrorHelper.js +11 -0
  14. package/dist/helpers/errors/ErrorHelper.js.map +1 -0
  15. package/dist/integration-engine/data-sources/AbstractDBFYPRDataSourceFactory.d.ts +11 -0
  16. package/dist/integration-engine/data-sources/AbstractDBFYPRDataSourceFactory.js +32 -0
  17. package/dist/integration-engine/data-sources/AbstractDBFYPRDataSourceFactory.js.map +1 -0
  18. package/dist/integration-engine/data-sources/DBFYPRDisplayCasesDataSourceFactory.d.ts +9 -0
  19. package/dist/integration-engine/data-sources/DBFYPRDisplayCasesDataSourceFactory.js +36 -0
  20. package/dist/integration-engine/data-sources/DBFYPRDisplayCasesDataSourceFactory.js.map +1 -0
  21. package/dist/integration-engine/data-sources/DBFYPRInformationPanelsDataSourceFactory.d.ts +9 -0
  22. package/dist/integration-engine/data-sources/DBFYPRInformationPanelsDataSourceFactory.js +36 -0
  23. package/dist/integration-engine/data-sources/DBFYPRInformationPanelsDataSourceFactory.js.map +1 -0
  24. package/dist/integration-engine/data-sources/DBFYPRObelisksDataSourceFactory.d.ts +9 -0
  25. package/dist/integration-engine/data-sources/DBFYPRObelisksDataSourceFactory.js +36 -0
  26. package/dist/integration-engine/data-sources/DBFYPRObelisksDataSourceFactory.js.map +1 -0
  27. package/dist/integration-engine/data-sources/DBFYPRSignpostsDataSourceFactory.d.ts +9 -0
  28. package/dist/integration-engine/data-sources/DBFYPRSignpostsDataSourceFactory.js +36 -0
  29. package/dist/integration-engine/data-sources/DBFYPRSignpostsDataSourceFactory.js.map +1 -0
  30. package/dist/integration-engine/data-sources/DBFYPRTotemsDataSourceFactory.d.ts +9 -0
  31. package/dist/integration-engine/data-sources/DBFYPRTotemsDataSourceFactory.js +36 -0
  32. package/dist/integration-engine/data-sources/DBFYPRTotemsDataSourceFactory.js.map +1 -0
  33. package/dist/integration-engine/data-sources/protocol-strategies/StrapiPaginatedHTTPProtocolStrategy.d.ts +21 -0
  34. package/dist/integration-engine/data-sources/protocol-strategies/StrapiPaginatedHTTPProtocolStrategy.js +59 -0
  35. package/dist/integration-engine/data-sources/protocol-strategies/StrapiPaginatedHTTPProtocolStrategy.js.map +1 -0
  36. package/dist/integration-engine/helpers/StrapiPaginationHelper.d.ts +10 -0
  37. package/dist/integration-engine/helpers/StrapiPaginationHelper.js +41 -0
  38. package/dist/integration-engine/helpers/StrapiPaginationHelper.js.map +1 -0
  39. package/dist/integration-engine/index.js +2 -3
  40. package/dist/integration-engine/index.js.map +1 -1
  41. package/dist/integration-engine/ioc/Di.d.ts +2 -0
  42. package/dist/integration-engine/ioc/Di.js +63 -0
  43. package/dist/integration-engine/ioc/Di.js.map +1 -0
  44. package/dist/integration-engine/ioc/FYPRIEContainerTokens.d.ts +23 -0
  45. package/dist/integration-engine/ioc/FYPRIEContainerTokens.js +35 -0
  46. package/dist/integration-engine/ioc/FYPRIEContainerTokens.js.map +1 -0
  47. package/dist/integration-engine/repositories/AbstractFyprRepository.d.ts +11 -0
  48. package/dist/integration-engine/repositories/AbstractFyprRepository.js +14 -0
  49. package/dist/integration-engine/repositories/AbstractFyprRepository.js.map +1 -0
  50. package/dist/integration-engine/repositories/DisplayCaseRepository.d.ts +14 -0
  51. package/dist/integration-engine/repositories/DisplayCaseRepository.js +58 -0
  52. package/dist/integration-engine/repositories/DisplayCaseRepository.js.map +1 -0
  53. package/dist/integration-engine/repositories/InformationPanelRepository.d.ts +14 -0
  54. package/dist/integration-engine/repositories/InformationPanelRepository.js +58 -0
  55. package/dist/integration-engine/repositories/InformationPanelRepository.js.map +1 -0
  56. package/dist/integration-engine/repositories/ObeliskRepository.d.ts +14 -0
  57. package/dist/integration-engine/repositories/ObeliskRepository.js +58 -0
  58. package/dist/integration-engine/repositories/ObeliskRepository.js.map +1 -0
  59. package/dist/integration-engine/repositories/SignpostRepository.d.ts +14 -0
  60. package/dist/integration-engine/repositories/SignpostRepository.js +58 -0
  61. package/dist/integration-engine/repositories/SignpostRepository.js.map +1 -0
  62. package/dist/integration-engine/repositories/TotemRepository.d.ts +14 -0
  63. package/dist/integration-engine/repositories/TotemRepository.js +58 -0
  64. package/dist/integration-engine/repositories/TotemRepository.js.map +1 -0
  65. package/dist/integration-engine/transformations/AbstractElementTransformation.d.ts +7 -0
  66. package/dist/integration-engine/transformations/AbstractElementTransformation.js +36 -0
  67. package/dist/integration-engine/transformations/AbstractElementTransformation.js.map +1 -0
  68. package/dist/integration-engine/transformations/DisplayCasesTransformation.d.ts +10 -0
  69. package/dist/integration-engine/transformations/DisplayCasesTransformation.js +46 -0
  70. package/dist/integration-engine/transformations/DisplayCasesTransformation.js.map +1 -0
  71. package/dist/integration-engine/transformations/InformationPanelsTransformation.d.ts +10 -0
  72. package/dist/integration-engine/transformations/InformationPanelsTransformation.js +102 -0
  73. package/dist/integration-engine/transformations/InformationPanelsTransformation.js.map +1 -0
  74. package/dist/integration-engine/transformations/ObelisksTransformation.d.ts +10 -0
  75. package/dist/integration-engine/transformations/ObelisksTransformation.js +41 -0
  76. package/dist/integration-engine/transformations/ObelisksTransformation.js.map +1 -0
  77. package/dist/integration-engine/transformations/SignpostsTransformation.d.ts +10 -0
  78. package/dist/integration-engine/transformations/SignpostsTransformation.js +43 -0
  79. package/dist/integration-engine/transformations/SignpostsTransformation.js.map +1 -0
  80. package/dist/integration-engine/transformations/TotemsTransformation.d.ts +10 -0
  81. package/dist/integration-engine/transformations/TotemsTransformation.js +78 -0
  82. package/dist/integration-engine/transformations/TotemsTransformation.js.map +1 -0
  83. package/dist/integration-engine/workers/FYPRWorker.d.ts +8 -0
  84. package/dist/integration-engine/workers/FYPRWorker.js +33 -0
  85. package/dist/integration-engine/workers/FYPRWorker.js.map +1 -0
  86. package/dist/integration-engine/workers/constants.d.ts +1 -0
  87. package/dist/integration-engine/workers/constants.js +5 -0
  88. package/dist/integration-engine/workers/constants.js.map +1 -0
  89. package/dist/integration-engine/workers/tasks/AbstractUpdateElementsTask.d.ts +12 -0
  90. package/dist/integration-engine/workers/tasks/AbstractUpdateElementsTask.js +26 -0
  91. package/dist/integration-engine/workers/tasks/AbstractUpdateElementsTask.js.map +1 -0
  92. package/dist/integration-engine/workers/tasks/FetchDBFYPRTask.d.ts +21 -0
  93. package/dist/integration-engine/workers/tasks/FetchDBFYPRTask.js +96 -0
  94. package/dist/integration-engine/workers/tasks/FetchDBFYPRTask.js.map +1 -0
  95. package/dist/integration-engine/workers/tasks/UpdateDisplayCasesTask.d.ts +11 -0
  96. package/dist/integration-engine/workers/tasks/UpdateDisplayCasesTask.js +38 -0
  97. package/dist/integration-engine/workers/tasks/UpdateDisplayCasesTask.js.map +1 -0
  98. package/dist/integration-engine/workers/tasks/UpdateInformationPanelsTask.d.ts +11 -0
  99. package/dist/integration-engine/workers/tasks/UpdateInformationPanelsTask.js +38 -0
  100. package/dist/integration-engine/workers/tasks/UpdateInformationPanelsTask.js.map +1 -0
  101. package/dist/integration-engine/workers/tasks/UpdateObelisksTask.d.ts +11 -0
  102. package/dist/integration-engine/workers/tasks/UpdateObelisksTask.js +38 -0
  103. package/dist/integration-engine/workers/tasks/UpdateObelisksTask.js.map +1 -0
  104. package/dist/integration-engine/workers/tasks/UpdateSignpostsTask.d.ts +11 -0
  105. package/dist/integration-engine/workers/tasks/UpdateSignpostsTask.js +38 -0
  106. package/dist/integration-engine/workers/tasks/UpdateSignpostsTask.js.map +1 -0
  107. package/dist/integration-engine/workers/tasks/UpdateTotemsTask.d.ts +11 -0
  108. package/dist/integration-engine/workers/tasks/UpdateTotemsTask.js +38 -0
  109. package/dist/integration-engine/workers/tasks/UpdateTotemsTask.js.map +1 -0
  110. package/dist/schema-definitions/const.d.ts +1 -0
  111. package/dist/schema-definitions/const.js +5 -0
  112. package/dist/schema-definitions/const.js.map +1 -0
  113. package/dist/schema-definitions/data-sources/DBFYPRDisplayCasesJSONSchema.d.ts +3 -0
  114. package/dist/schema-definitions/data-sources/DBFYPRDisplayCasesJSONSchema.js +97 -0
  115. package/dist/schema-definitions/data-sources/DBFYPRDisplayCasesJSONSchema.js.map +1 -0
  116. package/dist/schema-definitions/data-sources/DBFYPRElementsJSONSchema.d.ts +3 -0
  117. package/dist/schema-definitions/data-sources/DBFYPRElementsJSONSchema.js +64 -0
  118. package/dist/schema-definitions/data-sources/DBFYPRElementsJSONSchema.js.map +1 -0
  119. package/dist/schema-definitions/data-sources/DBFYPRInformationPanelsJSONSchema.d.ts +3 -0
  120. package/dist/schema-definitions/data-sources/DBFYPRInformationPanelsJSONSchema.js +307 -0
  121. package/dist/schema-definitions/data-sources/DBFYPRInformationPanelsJSONSchema.js.map +1 -0
  122. package/dist/schema-definitions/data-sources/DBFYPRObelisksJSONSchema.d.ts +3 -0
  123. package/dist/schema-definitions/data-sources/DBFYPRObelisksJSONSchema.js +79 -0
  124. package/dist/schema-definitions/data-sources/DBFYPRObelisksJSONSchema.js.map +1 -0
  125. package/dist/schema-definitions/data-sources/DBFYPRSignpostsJSONSchema.d.ts +3 -0
  126. package/dist/schema-definitions/data-sources/DBFYPRSignpostsJSONSchema.js +85 -0
  127. package/dist/schema-definitions/data-sources/DBFYPRSignpostsJSONSchema.js.map +1 -0
  128. package/dist/schema-definitions/data-sources/DBFYPRTotemsJSONSchema.d.ts +3 -0
  129. package/dist/schema-definitions/data-sources/DBFYPRTotemsJSONSchema.js +229 -0
  130. package/dist/schema-definitions/data-sources/DBFYPRTotemsJSONSchema.js.map +1 -0
  131. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRDisplayCase.d.ts +22 -0
  132. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRDisplayCase.js +3 -0
  133. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRDisplayCase.js.map +1 -0
  134. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRElement.d.ts +21 -0
  135. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRElement.js +3 -0
  136. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRElement.js.map +1 -0
  137. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRInformationPanel.d.ts +78 -0
  138. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRInformationPanel.js +3 -0
  139. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRInformationPanel.js.map +1 -0
  140. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRObelisk.d.ts +17 -0
  141. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRObelisk.js +3 -0
  142. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRObelisk.js.map +1 -0
  143. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRSignpost.d.ts +19 -0
  144. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRSignpost.js +3 -0
  145. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRSignpost.js.map +1 -0
  146. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRTotem.d.ts +54 -0
  147. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRTotem.js +3 -0
  148. package/dist/schema-definitions/data-sources/interfaces/IDBFYPRTotem.js.map +1 -0
  149. package/dist/schema-definitions/index.js +0 -1
  150. package/dist/schema-definitions/index.js.map +1 -1
  151. package/dist/schema-definitions/models/AbstractElementModel.d.ts +155 -0
  152. package/dist/schema-definitions/models/AbstractElementModel.js +104 -0
  153. package/dist/schema-definitions/models/AbstractElementModel.js.map +1 -0
  154. package/dist/schema-definitions/models/DisplayCaseModel.d.ts +28 -0
  155. package/dist/schema-definitions/models/DisplayCaseModel.js +103 -0
  156. package/dist/schema-definitions/models/DisplayCaseModel.js.map +1 -0
  157. package/dist/schema-definitions/models/InformationPanelModel.d.ts +84 -0
  158. package/dist/schema-definitions/models/InformationPanelModel.js +360 -0
  159. package/dist/schema-definitions/models/InformationPanelModel.js.map +1 -0
  160. package/dist/schema-definitions/models/ObeliskModel.d.ts +23 -0
  161. package/dist/schema-definitions/models/ObeliskModel.js +80 -0
  162. package/dist/schema-definitions/models/ObeliskModel.js.map +1 -0
  163. package/dist/schema-definitions/models/SignpostModel.d.ts +25 -0
  164. package/dist/schema-definitions/models/SignpostModel.js +88 -0
  165. package/dist/schema-definitions/models/SignpostModel.js.map +1 -0
  166. package/dist/schema-definitions/models/TotemModel.d.ts +60 -0
  167. package/dist/schema-definitions/models/TotemModel.js +251 -0
  168. package/dist/schema-definitions/models/TotemModel.js.map +1 -0
  169. package/dist/schema-definitions/models/interfaces/IDisplayCase.d.ts +22 -0
  170. package/dist/schema-definitions/models/interfaces/IDisplayCase.js +3 -0
  171. package/dist/schema-definitions/models/interfaces/IDisplayCase.js.map +1 -0
  172. package/dist/schema-definitions/models/interfaces/IElement.d.ts +19 -0
  173. package/dist/schema-definitions/models/interfaces/IElement.js +3 -0
  174. package/dist/schema-definitions/models/interfaces/IElement.js.map +1 -0
  175. package/dist/schema-definitions/models/interfaces/IInformationPanel.d.ts +78 -0
  176. package/dist/schema-definitions/models/interfaces/IInformationPanel.js +3 -0
  177. package/dist/schema-definitions/models/interfaces/IInformationPanel.js.map +1 -0
  178. package/dist/schema-definitions/models/interfaces/IObelisk.d.ts +17 -0
  179. package/dist/schema-definitions/models/interfaces/IObelisk.js +3 -0
  180. package/dist/schema-definitions/models/interfaces/IObelisk.js.map +1 -0
  181. package/dist/schema-definitions/models/interfaces/ISignpost.d.ts +19 -0
  182. package/dist/schema-definitions/models/interfaces/ISignpost.js +3 -0
  183. package/dist/schema-definitions/models/interfaces/ISignpost.js.map +1 -0
  184. package/dist/schema-definitions/models/interfaces/ITotem.d.ts +54 -0
  185. package/dist/schema-definitions/models/interfaces/ITotem.js +3 -0
  186. package/dist/schema-definitions/models/interfaces/ITotem.js.map +1 -0
  187. package/docs/asyncapi.yaml +823 -3
  188. package/docs/implementation_documentation.md +162 -39
  189. package/docs/translations.md +212 -0
  190. package/package.json +7 -5
@@ -10,50 +10,161 @@ Modul slouží k ukládání a poskytování informací o fyzických informačn
10
10
 
11
11
  ### Data aktivně stahujeme
12
12
 
13
- TODO: Popis dat, jak je pomocí cronu a integration-engine stahujeme. Pokud jsou data stahována z více zdrojů, každý zdroj je popsán zvlášť.
14
-
15
- #### *Název datového zdroje*
13
+ #### *DBFYPR*
16
14
 
17
15
  - zdroj dat
18
- - url
19
- - paramtery dotazu
16
+ - base URL: `module.fypr.dbfyprApi.baseUrl`
17
+ - URL paths
18
+ - informační panely: `module.fypr.dbfyprApi.informationPanels.path`
19
+ - obelisky: `module.fypr.dbfyprApi.obelisks.path`
20
+ - směrovníky: `module.fypr.dbfyprApi.signposts.path`
21
+ - totemy: `module.fypr.dbfyprApi.totems.path`
22
+ - vitríny: `module.fypr.dbfyprApi.displayCases.path`
23
+ - hlavičky dotazů: `module.fypr.dbfyprApi.{path}.headers` a `module.fypr.dbfyprApi.commonHeaders`, kde `{path}` je jedno z `informationPanels`, `obelisks`, `signposts`, `totems` nebo `displayCases`
20
24
  - formát dat
21
- - protokol
22
- - datový typ
23
- - odkaz na validační schéma
24
- - příklad vstupních dat
25
- - (volitelně) vstupní parametry, hlavičky, atd.
25
+ - protokol: HTTP
26
+ - datový typ: JSON
27
+ - validační schéma:
28
+ - elements: [`DBFYPRElementsJSONSchema`](../src/schema-definitions/data-sources/DBFYPRElementsJSONSchema.ts)
29
+ - vitríny: [`DBFYPRDisplayCasesJSONSchema`](../src/schema-definitions/data-sources/DBFYPRDisplayCasesJSONSchema.ts)
30
+ - informační panely: [`DBFYPRInformationPanelsJSONSchema`](../src/schema-definitions/data-sources//DBFYPRInformationPanelsJSONSchema.ts)
31
+ - obelisky: [`DBFYPRObelisksJSONSchema`](../src/schema-definitions/data-sources/DBFYPRObelisksJSONSchema.ts)
32
+ - směrovníky: [`DBFYPRSignpostsJSONSchema`](../src/schema-definitions/data-sources/DBFYPRSignpostsJSONSchema.ts)
33
+ - totemy: [`DBFYPRTotemsJSONSchema`](../src/schema-definitions/data-sources/DBFYPRTotemsJSONSchema.ts)
26
34
  - frekvence stahování
27
35
  - cron definice
28
- - název rabbitmq fronty
29
- - popis / název fronty, která vyvolá proces integrace, ve které je zdroj dat obsažen
36
+ - cron.vehicle-positions.fypr.fetchDBFYPR
37
+ - rabin TODO: fill value
38
+ - prod TODO: fill value
39
+ - název RabbitMQ fronty
40
+ - `vehicle-positions.fypr.fetchDBFYPR`
30
41
 
31
42
 
32
43
 
33
44
  ## Zpracování dat / transformace
34
45
 
35
- TODO: Popis transformace a případného obohacení dat. Zaměřeno hlavně na workery a jejich metody.
36
-
37
- ### *Název workeru*
46
+ ### Obecné
38
47
 
39
- Stručný popis workeru.
48
+ - AsyncAPI v3 dokumentace
49
+ - zdrojový soubor: [asyncapi.yaml](./asyncapi.yaml)
50
+
51
+ ### *FYPRWorker*
52
+
53
+ Worker má na starost stahování dat o fyzických prvcích z DBFYPR backend (Strapi API), jejich transformaci a uložení do databáze.
54
+
55
+ #### Task *FetchDBFYPR*
56
+
57
+ - vstupní RabbitMQ fronta
58
+ - název: `vehicle-positions.fypr.fetchDBFYPR`
59
+ - TTL: dle `module.fypr.dbfyprApi.clientTimeoutInSeconds` (doporučeno 60 sekund)
60
+ - parametry: žádné
61
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
62
+ - název: `vehicle-positions.fypr.updateDisplayCases`
63
+ - parametry: pole dat vitrín
64
+ - název: `vehicle-positions.fypr.updateInformationPanels`
65
+ - parametry: pole dat informačních panelů
66
+ - název: `vehicle-positions.fypr.updateObelisks`
67
+ - parametry: pole dat obelisků
68
+ - název: `vehicle-positions.fypr.updateSignposts`
69
+ - parametry: pole dat směrovníků
70
+ - název: `vehicle-positions.fypr.updateTotems`
71
+ - parametry: pole dat totemů
72
+ - datové zdroje
73
+ - DBFYPR
74
+ - transformace
75
+ - žádné
76
+ - data modely
77
+ - žádné
40
78
 
41
- #### *Název metody workeru*
79
+ #### Task *UpdateDisplayCases*
42
80
 
43
- - vstupní rabbitmq fronta
44
- - název
45
- - parametry
46
- - (volitelně) závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
47
- - název
48
- - parametry
81
+ - vstupní RabbitMQ fronta
82
+ - název: `vehicle-positions.fypr.updateDisplayCases`
83
+ - TTL: 60 sekund
84
+ - parametry: pole dat vitrín
85
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
86
+ - žádné
87
+ - datové zdroje
88
+ - žádné
89
+ - transformace
90
+ - [`DisplayCasesTransformation`](../src/integration-engine/transformations/DisplayCasesTransformation.ts)
91
+ - data modely
92
+ - výstupní model: [`DisplayCaseModel`](../src/schema-definitions/models/DisplayCaseModel.ts)
93
+ - rozhraní: [`IDisplayCase`](../src/schema-definitions/models/interfaces/IDisplayCase.ts)
94
+ - repository: [`DisplayCaseRepository`](../src/integration-engine/repositories/DisplayCaseRepository.ts)
95
+ - tabulka: `fypr.display_cases`
96
+
97
+ #### Task *UpdateInformationPanels*
98
+
99
+ - vstupní RabbitMQ fronta
100
+ - název: `vehicle-positions.fypr.updateInformationPanels`
101
+ - TTL: 60 sekund
102
+ - parametry: pole dat informačních panelů
103
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
104
+ - žádné
105
+ - datové zdroje
106
+ - žádné
107
+ - transformace
108
+ - [`InformationPanelsTransformation`](../src/integration-engine/transformations/InformationPanelsTransformation.ts)
109
+ - data modely
110
+ - výstupní model: [`InformationPanelModel`](../src/schema-definitions/models/InformationPanelModel.ts)
111
+ - rozhraní: [`IInformationPanel`](../src/schema-definitions/models/interfaces/IInformationPanel.ts)
112
+ - repository: [`InformationPanelRepository`](../src/integration-engine/repositories/InformationPanelRepository.ts)
113
+ - tabulka: `fypr.information_panels`
114
+
115
+ #### Task *UpdateObelisks*
116
+
117
+ - vstupní RabbitMQ fronta
118
+ - název: `vehicle-positions.fypr.updateObelisks`
119
+ - TTL: 60 sekund
120
+ - parametry: pole dat obelisků
121
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
122
+ - žádné
123
+ - datové zdroje
124
+ - žádné
125
+ - transformace
126
+ - [`ObelisksTransformation`](../src/integration-engine/transformations/ObelisksTransformation.ts)
127
+ - data modely
128
+ - výstupní model: [`ObeliskModel`](../src/schema-definitions/models/ObeliskModel.ts)
129
+ - rozhraní: [`IObelisk`](../src/schema-definitions/models/interfaces/IObelisk.ts)
130
+ - repository: [`ObeliskRepository`](../src/integration-engine/repositories/ObeliskRepository.ts)
131
+ - tabulka: `fypr.obelisks`
132
+
133
+ #### Task *UpdateSignposts*
134
+
135
+ - vstupní RabbitMQ fronta
136
+ - název: `vehicle-positions.fypr.updateSignposts`
137
+ - TTL: 60 sekund
138
+ - parametry: pole dat směrovníků
139
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
140
+ - žádné
49
141
  - datové zdroje
50
- - výčet datových zdrojů
142
+ - žádné
51
143
  - transformace
52
- - odkaz na transformaci dat, případně stručný popis tranformace
53
- - (volitelně) obohacení dat
54
- - popis, pokud se data obohacují a jak
144
+ - [`SignpostsTransformation`](../src/integration-engine/transformations/SignpostsTransformation.ts)
55
145
  - data modely
56
- - výčet datových modelů, kam se data ukládájí
146
+ - výstupní model: [`SignpostModel`](../src/schema-definitions/models/SignpostModel.ts)
147
+ - rozhraní: [`ISignpost`](../src/schema-definitions/models/interfaces/ISignpost.ts)
148
+ - repository: [`SignpostRepository`](../src/integration-engine/repositories/SignpostRepository.ts)
149
+ - tabulka: `fypr.signposts`
150
+
151
+ #### Task *UpdateTotems*
152
+
153
+ - vstupní RabbitMQ fronta
154
+ - název: `vehicle-positions.fypr.updateTotems`
155
+ - TTL: 60 sekund
156
+ - parametry: pole dat totemů
157
+ - závislé fronty (do kterých jsou odesílány zprávy z metody workeru)
158
+ - žádné
159
+ - datové zdroje
160
+ - žádné
161
+ - transformace
162
+ - [`TotemsTransformation`](../src/integration-engine/transformations/TotemsTransformation.ts)
163
+ - data modely
164
+ - výstupní model: [`TotemModel`](../src/schema-definitions/models/TotemModel.ts)
165
+ - rozhraní: [`ITotem`](../src/schema-definitions/models/interfaces/ITotem.ts)
166
+ - repository: [`TotemRepository`](../src/integration-engine/repositories/TotemRepository.ts)
167
+ - tabulka: `fypr.totems`
57
168
 
58
169
 
59
170
 
@@ -64,18 +175,30 @@ Popis ukládání dat.
64
175
  ### Obecné
65
176
 
66
177
  - typ databáze
67
- - PSQL
178
+ - PostgreSQL
68
179
  - databázové schéma
69
- - TODO: popis tabulek nebo odkaz na obrázek s databázovým schématem
70
- - retence dat
71
- - TODO: popis zachovávání a promazávání dat
72
-
73
- ### *Název datového modelu*
74
-
75
- - schéma a název tabulky / kolekce
76
- - struktura tabulky / kolekce
77
- - odkaz na schéma, případně na migrační skripty
78
- - ukázka dat
180
+ - schéma: `fypr`
181
+ - migrační skripty: [db/migrations/postgresql/sqls/](../db/migrations/postgresql/sqls/)
182
+ - hlavní tabulka: `elements` (obsahuje společné atributy všech prvků)
183
+ - dědící tabulky (PostgreSQL INHERITS):
184
+ - `display_cases` - vitríny
185
+ - `information_panels` - informační panely
186
+ - `obelisks` - obelisky
187
+ - `signposts` - směrovníky
188
+ - `totems` - totemy
189
+ - data jsou ukládána bez automatického promazávání
190
+ - aktualizace dat probíhá pomocí UPSERT
191
+ - starší verze dat jsou přepsány novými daty ze zdroje
192
+
193
+ ### Datové modely
194
+
195
+ Pro podrobnou strukturu jednotlivých tabulek viz:
196
+ - [DisplayCaseModel](../src/schema-definitions/models/DisplayCaseModel.ts)
197
+ - [InformationPanelModel](../src/schema-definitions/models/InformationPanelModel.ts)
198
+ - [ObeliskModel](../src/schema-definitions/models/ObeliskModel.ts)
199
+ - [SignpostModel](../src/schema-definitions/models/SignpostModel.ts)
200
+ - [TotemModel](../src/schema-definitions/models/TotemModel.ts)
201
+ - [AbstractElementModel](../src/schema-definitions/models/AbstractElementModel.ts) (společné atributy)
79
202
 
80
203
 
81
204
 
@@ -0,0 +1,212 @@
1
+ # Translations
2
+
3
+ Tables of Czech to English translations:
4
+
5
+ | Element (cz) | Element (en)
6
+ | ---------------- | ------------
7
+ | informační panel | information panel
8
+ | obelisk | obelisk
9
+ | směrovník | signpost
10
+ | totem | totem
11
+ | vitrína | display case
12
+
13
+ | Element (en) | Attribute (cz) | Attribute (en)
14
+ | ----------------- | ---------------------------------- | ---------------------------
15
+ | (all elements) | |
16
+ | | documentId | document_id
17
+ | | uid_prvku | uid
18
+ | | typ_prvku | kind
19
+ | | nazev_prvku | name
20
+ | | stav_prvku | state
21
+ | | vlastnik_prvku | owner
22
+ | | umisteni_mestska_cast | city_district
23
+ | | souradnice_umisteni_lat | lat
24
+ | | souradnice_umisteni_lon | lon
25
+ | | mapa_odkaz | map_link
26
+ | | planovany_rok_realizace | planned_year_of_realization
27
+ | | poznamka_k_prvku | note
28
+ | | createdAt | source_created_at
29
+ | | updatedAt | source_updated_at
30
+ | | publishedAt | source_published_at
31
+ | | predani_do_spravy | handover
32
+ | | predani_do_spravy_datum | handover_date
33
+ | display case | |
34
+ | | zastavka_nazev | stop_name
35
+ | | zastavka_smer | stop_direction
36
+ | | stanoviste | platform_code
37
+ | | zastavka_typ | stop_type
38
+ | | id_zastavky_thmp | thmp_stop_id
39
+ | | pristresek_typ | shelter_type
40
+ | | pristresek_id | shelter_id
41
+ | | qr_kod | qr_code
42
+ | | dodavatel | supplier
43
+ | | komentare | comments
44
+ | | asw_node_id | asw_node_id
45
+ | | asw_stop_id | asw_stop_id
46
+ | | umisteni_popis | location_description
47
+ | | ulice_nazev | street_name
48
+ | | id_prvku_ropid | ropid_element_id
49
+ | | cena_prvku_bez_dph | price_without_vat
50
+ | | vyrobni_cislo_prvku | serial_number
51
+ | | cislo_prvku_thmp | thmp_element_number
52
+ | | cetnost_uklidu | cleaning_frequency
53
+ | information panel | |
54
+ | | zastavka_nazev | stop_name
55
+ | | zastavka_smer | stop_direction
56
+ | | stanoviste | platform_code
57
+ | | zastavka_typ | stop_type
58
+ | | id_zastavky_thmp | thmp_stop_id
59
+ | | pozemek_cislo_parcely | land_parcel_number
60
+ | | pozemek_vlastnik | land_owner
61
+ | | pocet_nastupujicich_v_prac_den | workday_boarding_count
62
+ | | linky | lines
63
+ | | umisteni_popis | location_description
64
+ | | overeni_umisteni_na_vo | location_verification_on_street_light
65
+ | | pristresek_typ | shelter_type
66
+ | | pristresek_id | shelter_id
67
+ | | cislo_vo | street_light_number
68
+ | | typ_povrchu | surface_type
69
+ | | pripojka_stav | connection_state
70
+ | | pripojka_typ | connection_type
71
+ | | pripojka_rezim | connection_mode
72
+ | | priorita | priority
73
+ | | investor_akce | investor_action
74
+ | | projekce_pozadavek | design_request
75
+ | | projekce_stav | design_state
76
+ | | projekce_objednavka_cislo | design_order_number
77
+ | | projekce_zverejneni_v_registru | design_registry_publication
78
+ | | projekce_faktura_proplacena | design_invoice_paid
79
+ | | vyroba_objednavka_cislo | production_order_number
80
+ | | vyroba_stav | production_state
81
+ | | vyroba_zverejneni_v_registru | production_registry_publication
82
+ | | vyroba_faktura_proplacena | production_invoice_paid
83
+ | | realizace_pozadavek | realization_request
84
+ | | realizace_stav | realization_state
85
+ | | realizace_objednavka_cislo | realization_order_number
86
+ | | realizace_zverejneni_v_registru | realization_registry_publication
87
+ | | realizace_faktura_proplacena | realization_invoice_paid
88
+ | | nazev_pro_nevidome | name_for_visually_impaired
89
+ | | hlas_den | voice_day
90
+ | | hlas_noc | voice_night
91
+ | | sablony | templates
92
+ | | preset | preset
93
+ | | datovy_zdroj | data_source
94
+ | | imsi | imsi
95
+ | | misto_napojeni | connection_point
96
+ | | cislo_mista_napojeni | connection_point_number
97
+ | | typ_zakladu | foundation_type
98
+ | | konec_zaruky | warranty_end
99
+ | | revize_vychozi | initial_revision
100
+ | | revize_nasledujici | next_revision
101
+ | | servis_elektroniky | electronics_service
102
+ | | servis_elektroniky_konec | electronics_service_end
103
+ | | evidence_v_majetku | asset_registered
104
+ | | cislo_majetku | asset_number
105
+ | | pojisteni | insurance
106
+ | | predano_ozp_do_spravy | handed_over_to_ozp
107
+ | | dokumentace_pro_dpp_pozadavek | dpp_documentation_request
108
+ | | dokumentace_pro_dpp_datum_predani | dpp_documentation_handover_date
109
+ | | termin_projekce | design_deadline
110
+ | | termin_vyroby | production_deadline
111
+ | | dokumentace_pro_ropid_predana | ropid_documentation_submitted
112
+ | | dokumentace_pro_ropid_datum_predani | ropid_documentation_handover_date
113
+ | | dokumentace_pro_dpp_predana | dpp_documentation_submitted
114
+ | | termin_realizace | realization_deadline
115
+ | | id_zarizeni | device_id
116
+ | | asw_node_id | asw_node_id
117
+ | | asw_stop_id | asw_stop_id
118
+ | | prikon_watt | power_consumption_watt
119
+ | | cislo_prvku_thmp | thmp_element_number
120
+ | | smlouva_odber_elektriny | electricity_supply_contract
121
+ | | cetnost_uklidu | cleaning_frequency
122
+ | | cena_za_odber_elektriny | electricity_consumption_price
123
+ | | typ_konstrukce_prvku | construction_type
124
+ | | velikost_panelu | panel_size
125
+ | | cena_projekce_bez_dph | design_price_without_vat
126
+ | | cena_vyroba_bez_dph | production_price_without_vat
127
+ | | cena_realizace_bez_dph | realization_price_without_vat
128
+ | | vyrobni_cislo_prvku | serial_number
129
+ | obelisk | |
130
+ | | ulice_nazev | street_name
131
+ | | umisteni_popis | location_description
132
+ | | pozemek_cislo_parcely | land_parcel_number
133
+ | | pozemek_vlastnik | land_owner
134
+ | | priorita | priority
135
+ | | evidence_v_majetku | asset_registered
136
+ | | cislo_majetku | asset_number
137
+ | | pojisteni | insurance
138
+ | | pojisteni_stav | insurance_state
139
+ | | predano_ozp_do_spravy | handed_over_to_ozp
140
+ | | komentare | comments
141
+ | | id_prvku_ropid | ropid_element_id
142
+ | | typ_konstrukce_prvku | construction_type
143
+ | | cena_prvku_bez_dph | price_without_vat
144
+ | signpost | |
145
+ | | ulice_nazev | street_name
146
+ | | umisteni_popis | location_description
147
+ | | pozemek_cislo_parcely | land_parcel_number
148
+ | | pozemek_vlastnik | land_owner
149
+ | | cislo_vo | street_light_number
150
+ | | pocet_listu | sheet_count
151
+ | | priorita | priority
152
+ | | evidence_v_majetku | asset_registered
153
+ | | cislo_majetku | asset_number
154
+ | | pojisteni | insurance
155
+ | | pojisteni_stav | insurance_state
156
+ | | predano_ozp_do_spravy | handed_over_to_ozp
157
+ | | komentare | comments
158
+ | | id_prvku_ropid | ropid_element_id
159
+ | | typ_konstrukce_prvku | construction_type
160
+ | | cena_prvku_bez_dph | price_without_vat
161
+ | totem | |
162
+ | | velikost_panelu | panel_size
163
+ | | lokalita | locality
164
+ | | zobrazena_ikona | displayed_icon
165
+ | | linka | line
166
+ | | priorita | priority
167
+ | | mistni_setreni | site_survey
168
+ | | vyska_instalace | installation_height
169
+ | | cislo_vo | street_light_number
170
+ | | obmena_vo | street_light_replacement
171
+ | | cislo_tv | tv_number
172
+ | | ss_stavebni_rizeni | building_permit
173
+ | | ss_stavebni_rizeni_stav | building_permit_state
174
+ | | umisteni_poznamka | location_note
175
+ | | mistni_setreni_zprava | site_survey_report
176
+ | | objednavka_stav | order_state
177
+ | | objednavka_cislo | order_number
178
+ | | cena_projekce_bez_dph | design_price_without_vat
179
+ | | cena_realizace_bez_dph | realization_price_without_vat
180
+ | | konec_zaruky | warranty_end
181
+ | | revize_nasledujici | next_revision
182
+ | | qr_kod | qr_code
183
+ | | dodavatel | supplier
184
+ | | zastavka_nazev | stop_name
185
+ | | zastavka_typ | stop_type
186
+ | | mistni_setreni_datum | site_survey_date
187
+ | | objednavka_planovany_termin | order_planned_deadline
188
+ | | objednavka_zverejneni_v_registru | order_registry_publication
189
+ | | faktura_proplacena | invoice_paid
190
+ | | revize_vychozi | initial_revision
191
+ | | evidence_v_majetku | asset_registered
192
+ | | cislo_majetku | asset_number
193
+ | | pojisteni | insurance
194
+ | | predano_ozp_do_spravy | handed_over_to_ozp
195
+ | | dokumentace_pro_ropid_predana | ropid_documentation_submitted
196
+ | | dokumentace_pro_ropid_datum_predani | ropid_documentation_handover_date
197
+ | | ulice_nazev | street_name
198
+ | | exit_cislo | exit_number
199
+ | | priorita_dpp | dpp_priority
200
+ | | pojisteni_stav | insurance_state
201
+ | | komentare | comments
202
+ | | asw_node_id | asw_node_id
203
+ | | asw_stop_id | asw_stop_id
204
+ | | prikon_watt | power_consumption_watt
205
+ | | cislo_prvku_thmp | thmp_element_number
206
+ | | smlouva_odber_elektriny | electricity_supply_contract
207
+ | | cetnost_uklidu | cleaning_frequency
208
+ | | cena_za_odber_elektriny | electricity_consumption_price
209
+ | | id_prvku_ropid | ropid_element_id
210
+ | | typ_konstrukce_prvku | construction_type
211
+ | | cena_prvku_bez_dph | price_without_vat
212
+ | | vyrobni_cislo_prvku | serial_number
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@golemio/fypr",
3
- "version": "1.0.1",
3
+ "version": "1.0.2-dev.2343920210",
4
4
  "description": "Golemio FYPR Module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,12 +11,14 @@
11
11
  "build": "rimraf ./dist && tspc -p ./tsconfig.build.json",
12
12
  "build-minimal": "run-s 'build -- --sourceMap false --declaration false'",
13
13
  "build-watch": "run-s 'build -- --watch --preserveWatchOutput'",
14
- "pretest": "golemio import-db-data",
15
- "test": "cross-env NODE_ENV='test' TZ='UTC' mocha --exit --check-leaks --timeout 120000 --reporter-option maxDiffSize=0 -r ts-node/register -r tsconfig-paths/register --file 'test/setup.ts' -r dotenv/config 'test/**/*.test.ts'",
16
- "test-debug": "run-s 'test -- --inspect-brk=9230'",
14
+ "prepare-db": "golemio import-db-data --postgres",
15
+ "test:debug": "run-s 'test -- --inspect-brk=9230'",
16
+ "test:only": "cross-env NODE_ENV='test' TZ='UTC' mocha --exit --check-leaks --timeout 120000 --reporter-option maxDiffSize=0 -r ts-node/register -r tsconfig-paths/register --file 'test/setup.ts' -r dotenv/config 'test/**/*.test.ts'",
17
+ "test": "run-s prepare-db test:only",
17
18
  "apidocs-test": "npm run apidocs-test-output",
18
19
  "apidocs-test-output": "cross-env NODE_ENV=test golemio swagger api-test --oas docs/openapi-output.yaml --script test/api-docs/output-gateway/server.js --config test/api-docs/output-gateway/portman-config.json --filter test/api-docs/output-gateway/portman-filter.json",
19
- "code-coverage": "nyc run-s 'test -- -r source-map-support/register'",
20
+ "coverage:only": "nyc --reporter=text --reporter=lcov run-s 'test:only -- -r source-map-support/register'",
21
+ "code-coverage": "run-s prepare-db coverage:only",
20
22
  "format:check-staged": "pretty-quick --staged --pattern '**/*.ts'",
21
23
  "generate-docs": "typedoc --out docs/typedoc src",
22
24
  "lint": "eslint --cache \"{src,test}/**/*.ts\"",