@golemio/parkings 1.6.1 → 1.6.2-dev.1073199149

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 (232) hide show
  1. package/db/example/00_clear_test_data.sql +3 -0
  2. package/db/example/04_tsk_parking_v2.sql +21 -0
  3. package/db/migrations/postgresql/20230918124250-tsk-v-2-parking-sources.js +53 -0
  4. package/db/migrations/postgresql/20230918124259-tsk-v-2-parking-machines.js +53 -0
  5. package/db/migrations/postgresql/20230925090241-tsk-tariffs.js +53 -0
  6. package/db/migrations/postgresql/20231003115645-tsk-v-2-parking-special-access.js +53 -0
  7. package/db/migrations/postgresql/20231108130727-ipt-api-v3-allowed.js +53 -0
  8. package/db/migrations/postgresql/sqls/20230918124250-tsk-v-2-parking-sources-down.sql +1 -0
  9. package/db/migrations/postgresql/sqls/20230918124250-tsk-v-2-parking-sources-up.sql +18 -0
  10. package/db/migrations/postgresql/sqls/20230918124259-tsk-v-2-parking-machines-down.sql +1 -0
  11. package/db/migrations/postgresql/sqls/20230918124259-tsk-v-2-parking-machines-up.sql +15 -0
  12. package/db/migrations/postgresql/sqls/20230925090241-tsk-tariffs-down.sql +4 -0
  13. package/db/migrations/postgresql/sqls/20230925090241-tsk-tariffs-up.sql +4 -0
  14. package/db/migrations/postgresql/sqls/20231003115645-tsk-v-2-parking-special-access-down.sql +1 -0
  15. package/db/migrations/postgresql/sqls/20231003115645-tsk-v-2-parking-special-access-up.sql +1 -0
  16. package/db/migrations/postgresql/sqls/20231108130727-ipt-api-v3-allowed-down.sql +2 -0
  17. package/db/migrations/postgresql/sqls/20231108130727-ipt-api-v3-allowed-up.sql +2 -0
  18. package/dist/helpers/const.d.ts +0 -0
  19. package/dist/helpers/const.js +2 -0
  20. package/dist/helpers/const.js.map +1 -0
  21. package/dist/helpers/data-access/CachedParkingSourcesRepository.d.ts +12 -0
  22. package/dist/helpers/data-access/CachedParkingSourcesRepository.js +40 -0
  23. package/dist/helpers/data-access/CachedParkingSourcesRepository.js.map +1 -0
  24. package/dist/helpers/interfaces/IParkingSource.d.ts +8 -0
  25. package/dist/helpers/interfaces/IParkingSource.js +3 -0
  26. package/dist/helpers/interfaces/IParkingSource.js.map +1 -0
  27. package/dist/input-gateway/controllers/ParkingSourcesController.d.ts +9 -0
  28. package/dist/input-gateway/controllers/ParkingSourcesController.js +40 -0
  29. package/dist/input-gateway/controllers/ParkingSourcesController.js.map +1 -0
  30. package/dist/input-gateway/index.d.ts +2 -0
  31. package/dist/input-gateway/index.js +5 -0
  32. package/dist/input-gateway/index.js.map +1 -1
  33. package/dist/input-gateway/routers/ParkingSourcesRouter.d.ts +12 -0
  34. package/dist/input-gateway/routers/ParkingSourcesRouter.js +39 -0
  35. package/dist/input-gateway/routers/ParkingSourcesRouter.js.map +1 -0
  36. package/dist/integration-engine/ParkingInterface.d.ts +6 -0
  37. package/dist/integration-engine/datasources/TskParkingDataSourceFactory.d.ts +8 -0
  38. package/dist/integration-engine/datasources/TskParkingDataSourceFactory.js +51 -0
  39. package/dist/integration-engine/datasources/TskParkingDataSourceFactory.js.map +1 -0
  40. package/dist/integration-engine/index.d.ts +5 -1
  41. package/dist/integration-engine/index.js +5 -1
  42. package/dist/integration-engine/index.js.map +1 -1
  43. package/dist/integration-engine/ioc/Di.js +27 -1
  44. package/dist/integration-engine/ioc/Di.js.map +1 -1
  45. package/dist/integration-engine/ioc/ModuleContainerToken.d.ts +9 -0
  46. package/dist/integration-engine/ioc/ModuleContainerToken.js +9 -0
  47. package/dist/integration-engine/ioc/ModuleContainerToken.js.map +1 -1
  48. package/dist/integration-engine/repositories/ParkingMachinesRepository.d.ts +4 -0
  49. package/dist/integration-engine/repositories/ParkingMachinesRepository.js +35 -0
  50. package/dist/integration-engine/repositories/ParkingMachinesRepository.js.map +1 -0
  51. package/dist/integration-engine/repositories/ParkingSourcesRepository.d.ts +4 -0
  52. package/dist/integration-engine/repositories/ParkingSourcesRepository.js +23 -0
  53. package/dist/integration-engine/repositories/ParkingSourcesRepository.js.map +1 -0
  54. package/dist/integration-engine/transformations/TskParkingMachinesTransformation.d.ts +7 -0
  55. package/dist/integration-engine/transformations/TskParkingMachinesTransformation.js +24 -0
  56. package/dist/integration-engine/transformations/TskParkingMachinesTransformation.js.map +1 -0
  57. package/dist/integration-engine/transformations/TskParkingSectionLevelTransformation.d.ts +9 -0
  58. package/dist/integration-engine/transformations/TskParkingSectionLevelTransformation.js +42 -0
  59. package/dist/integration-engine/transformations/TskParkingSectionLevelTransformation.js.map +1 -0
  60. package/dist/integration-engine/transformations/TskParkingSectionTransformation.d.ts +10 -0
  61. package/dist/integration-engine/transformations/TskParkingSectionTransformation.js +66 -0
  62. package/dist/integration-engine/transformations/TskParkingSectionTransformation.js.map +1 -0
  63. package/dist/integration-engine/transformations/TskParkingZonesTariffsTransformation.d.ts +14 -0
  64. package/dist/integration-engine/transformations/TskParkingZonesTariffsTransformation.js +84 -0
  65. package/dist/integration-engine/transformations/TskParkingZonesTariffsTransformation.js.map +1 -0
  66. package/dist/integration-engine/workers/ParkingSourcesWorker.d.ts +5 -0
  67. package/dist/integration-engine/workers/ParkingSourcesWorker.js +18 -0
  68. package/dist/integration-engine/workers/ParkingSourcesWorker.js.map +1 -0
  69. package/dist/integration-engine/workers/TskParkingWorker.d.ts +5 -0
  70. package/dist/integration-engine/workers/TskParkingWorker.js +31 -0
  71. package/dist/integration-engine/workers/TskParkingWorker.js.map +1 -0
  72. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.d.ts +9 -0
  73. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js +44 -0
  74. package/dist/integration-engine/workers/schemas/ParkingSourceSchema.js.map +1 -0
  75. package/dist/integration-engine/workers/tasks/SaveTskParkingMachinesTask.d.ts +13 -0
  76. package/dist/integration-engine/workers/tasks/SaveTskParkingMachinesTask.js +31 -0
  77. package/dist/integration-engine/workers/tasks/SaveTskParkingMachinesTask.js.map +1 -0
  78. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionLevelTask.d.ts +15 -0
  79. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionLevelTask.js +40 -0
  80. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionLevelTask.js.map +1 -0
  81. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionsTask.d.ts +13 -0
  82. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionsTask.js +41 -0
  83. package/dist/integration-engine/workers/tasks/SaveTskParkingSectionsTask.js.map +1 -0
  84. package/dist/integration-engine/workers/tasks/SaveTskParkingZonesTariffsTask.d.ts +11 -0
  85. package/dist/integration-engine/workers/tasks/SaveTskParkingZonesTariffsTask.js +33 -0
  86. package/dist/integration-engine/workers/tasks/SaveTskParkingZonesTariffsTask.js.map +1 -0
  87. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.d.ts +14 -0
  88. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.js +36 -0
  89. package/dist/integration-engine/workers/tasks/UpdateParkingSourceTask.js.map +1 -0
  90. package/dist/output-gateway/controllers/v3/V3ParkingController.d.ts +9 -0
  91. package/dist/output-gateway/controllers/v3/V3ParkingController.js +79 -0
  92. package/dist/output-gateway/controllers/v3/V3ParkingController.js.map +1 -0
  93. package/dist/output-gateway/controllers/v3/V3ParkingMachinesController.d.ts +9 -0
  94. package/dist/output-gateway/controllers/v3/V3ParkingMachinesController.js +78 -0
  95. package/dist/output-gateway/controllers/v3/V3ParkingMachinesController.js.map +1 -0
  96. package/dist/output-gateway/controllers/v3/V3ParkingTariffsController.d.ts +9 -0
  97. package/dist/output-gateway/controllers/v3/V3ParkingTariffsController.js +70 -0
  98. package/dist/output-gateway/controllers/v3/V3ParkingTariffsController.js.map +1 -0
  99. package/dist/output-gateway/data-access/ParkingMachinesRepository.d.ts +10 -0
  100. package/dist/output-gateway/data-access/ParkingMachinesRepository.js +101 -0
  101. package/dist/output-gateway/data-access/ParkingMachinesRepository.js.map +1 -0
  102. package/dist/output-gateway/data-access/ParkingRepository.d.ts +14 -0
  103. package/dist/output-gateway/data-access/ParkingRepository.js +141 -0
  104. package/dist/output-gateway/data-access/ParkingRepository.js.map +1 -0
  105. package/dist/output-gateway/data-access/TariffRepository.d.ts +10 -0
  106. package/dist/output-gateway/data-access/TariffRepository.js +99 -0
  107. package/dist/output-gateway/data-access/TariffRepository.js.map +1 -0
  108. package/dist/output-gateway/helpers/params/IPaginationParams.d.ts +4 -0
  109. package/dist/output-gateway/helpers/params/IPaginationParams.js +3 -0
  110. package/dist/output-gateway/helpers/params/IPaginationParams.js.map +1 -0
  111. package/dist/output-gateway/helpers/params/IParkingMachinesParams.d.ts +9 -0
  112. package/dist/output-gateway/helpers/params/IParkingMachinesParams.js +3 -0
  113. package/dist/output-gateway/helpers/params/IParkingMachinesParams.js.map +1 -0
  114. package/dist/output-gateway/helpers/params/IParkingParams.d.ts +10 -0
  115. package/dist/output-gateway/helpers/params/IParkingParams.js +3 -0
  116. package/dist/output-gateway/helpers/params/IParkingParams.js.map +1 -0
  117. package/dist/output-gateway/helpers/params/IParkingTariffsParams.d.ts +7 -0
  118. package/dist/output-gateway/helpers/params/IParkingTariffsParams.js +3 -0
  119. package/dist/output-gateway/helpers/params/IParkingTariffsParams.js.map +1 -0
  120. package/dist/output-gateway/index.js +9 -1
  121. package/dist/output-gateway/index.js.map +1 -1
  122. package/dist/output-gateway/ioc/Di.d.ts +3 -0
  123. package/dist/output-gateway/ioc/Di.js +30 -0
  124. package/dist/output-gateway/ioc/Di.js.map +1 -0
  125. package/dist/output-gateway/ioc/ModuleContainerToken.d.ts +9 -0
  126. package/dist/output-gateway/ioc/ModuleContainerToken.js +13 -0
  127. package/dist/output-gateway/ioc/ModuleContainerToken.js.map +1 -0
  128. package/dist/output-gateway/models/ParkingsLocationModel.d.ts +1 -1
  129. package/dist/output-gateway/models/ParkingsLocationModel.js +19 -5
  130. package/dist/output-gateway/models/ParkingsLocationModel.js.map +1 -1
  131. package/dist/output-gateway/models/ParkingsModel.d.ts +6 -4
  132. package/dist/output-gateway/models/ParkingsModel.js +46 -10
  133. package/dist/output-gateway/models/ParkingsModel.js.map +1 -1
  134. package/dist/output-gateway/models/ParkingsTariffsModel.d.ts +5 -1
  135. package/dist/output-gateway/models/ParkingsTariffsModel.js +17 -2
  136. package/dist/output-gateway/models/ParkingsTariffsModel.js.map +1 -1
  137. package/dist/output-gateway/models/index.js +4 -2
  138. package/dist/output-gateway/models/index.js.map +1 -1
  139. package/dist/output-gateway/routers/constants.d.ts +2 -1
  140. package/dist/output-gateway/routers/constants.js +1 -0
  141. package/dist/output-gateway/routers/constants.js.map +1 -1
  142. package/dist/output-gateway/routers/index.d.ts +3 -0
  143. package/dist/output-gateway/routers/index.js +3 -0
  144. package/dist/output-gateway/routers/index.js.map +1 -1
  145. package/dist/output-gateway/routers/v2/V2ParkingRouter.js +25 -4
  146. package/dist/output-gateway/routers/v2/V2ParkingRouter.js.map +1 -1
  147. package/dist/output-gateway/routers/v3/V3ParkingMachinesRouter.d.ts +3 -0
  148. package/dist/output-gateway/routers/v3/V3ParkingMachinesRouter.js +43 -0
  149. package/dist/output-gateway/routers/v3/V3ParkingMachinesRouter.js.map +1 -0
  150. package/dist/output-gateway/routers/v3/V3ParkingRouter.d.ts +3 -0
  151. package/dist/output-gateway/routers/v3/V3ParkingRouter.js +57 -0
  152. package/dist/output-gateway/routers/v3/V3ParkingRouter.js.map +1 -0
  153. package/dist/output-gateway/routers/v3/V3ParkingTariffsRouter.d.ts +3 -0
  154. package/dist/output-gateway/routers/v3/V3ParkingTariffsRouter.js +31 -0
  155. package/dist/output-gateway/routers/v3/V3ParkingTariffsRouter.js.map +1 -0
  156. package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.d.ts +8 -0
  157. package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.js +56 -0
  158. package/dist/output-gateway/routers/v3/helpers/PrimarySourceValidator.js.map +1 -0
  159. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingTariffDto.d.ts +27 -0
  160. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingTariffDto.js +3 -0
  161. package/dist/output-gateway/transformations/interfaces/v3/IV3ParkingTariffDto.js.map +1 -0
  162. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.d.ts +9 -0
  163. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js +68 -0
  164. package/dist/output-gateway/transformations/v3/ParkingDtoTransformation.js.map +1 -0
  165. package/dist/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.d.ts +8 -0
  166. package/dist/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.js +35 -0
  167. package/dist/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.js.map +1 -0
  168. package/dist/output-gateway/transformations/v3/ParkingTariffDtoTransformation.d.ts +11 -0
  169. package/dist/output-gateway/transformations/v3/ParkingTariffDtoTransformation.js +88 -0
  170. package/dist/output-gateway/transformations/v3/ParkingTariffDtoTransformation.js.map +1 -0
  171. package/dist/schema-definitions/datasources/InputParkingSourceSchema.d.ts +3 -0
  172. package/dist/schema-definitions/datasources/InputParkingSourceSchema.js +17 -0
  173. package/dist/schema-definitions/datasources/InputParkingSourceSchema.js.map +1 -0
  174. package/dist/schema-definitions/datasources/ParkingTariffDtoSchema.d.ts +111 -3
  175. package/dist/schema-definitions/datasources/ParkingTariffDtoSchema.js +16 -0
  176. package/dist/schema-definitions/datasources/ParkingTariffDtoSchema.js.map +1 -1
  177. package/dist/schema-definitions/datasources/TskParkingMachinesSchema.d.ts +3 -0
  178. package/dist/schema-definitions/datasources/TskParkingMachinesSchema.js +23 -0
  179. package/dist/schema-definitions/datasources/TskParkingMachinesSchema.js.map +1 -0
  180. package/dist/schema-definitions/datasources/TskParkingSectionLevelSchema.d.ts +3 -0
  181. package/dist/schema-definitions/datasources/TskParkingSectionLevelSchema.js +25 -0
  182. package/dist/schema-definitions/datasources/TskParkingSectionLevelSchema.js.map +1 -0
  183. package/dist/schema-definitions/datasources/TskParkingSectionSchema.d.ts +3 -0
  184. package/dist/schema-definitions/datasources/TskParkingSectionSchema.js +23 -0
  185. package/dist/schema-definitions/datasources/TskParkingSectionSchema.js.map +1 -0
  186. package/dist/schema-definitions/datasources/TskParkingZoneTariffSchema.d.ts +3 -0
  187. package/dist/schema-definitions/datasources/TskParkingZoneTariffSchema.js +105 -0
  188. package/dist/schema-definitions/datasources/TskParkingZoneTariffSchema.js.map +1 -0
  189. package/dist/schema-definitions/datasources/interfaces/ITskParkingMachine.d.ts +9 -0
  190. package/dist/schema-definitions/datasources/interfaces/ITskParkingMachine.js +3 -0
  191. package/dist/schema-definitions/datasources/interfaces/ITskParkingMachine.js.map +1 -0
  192. package/dist/schema-definitions/datasources/interfaces/ITskParkingSection.d.ts +9 -0
  193. package/dist/schema-definitions/datasources/interfaces/ITskParkingSection.js +3 -0
  194. package/dist/schema-definitions/datasources/interfaces/ITskParkingSection.js.map +1 -0
  195. package/dist/schema-definitions/datasources/interfaces/ITskParkingSectionLevel.d.ts +11 -0
  196. package/dist/schema-definitions/datasources/interfaces/ITskParkingSectionLevel.js +3 -0
  197. package/dist/schema-definitions/datasources/interfaces/ITskParkingSectionLevel.js.map +1 -0
  198. package/dist/schema-definitions/datasources/interfaces/ITskParkingZoneTariff.d.ts +57 -0
  199. package/dist/schema-definitions/datasources/interfaces/ITskParkingZoneTariff.js +3 -0
  200. package/dist/schema-definitions/datasources/interfaces/ITskParkingZoneTariff.js.map +1 -0
  201. package/dist/schema-definitions/index.d.ts +3 -0
  202. package/dist/schema-definitions/index.js +8 -0
  203. package/dist/schema-definitions/index.js.map +1 -1
  204. package/dist/schema-definitions/models/ParkingMachinesModel.d.ts +14 -0
  205. package/dist/schema-definitions/models/ParkingMachinesModel.js +21 -0
  206. package/dist/schema-definitions/models/ParkingMachinesModel.js.map +1 -0
  207. package/dist/schema-definitions/models/ParkingSourcesModel.d.ts +12 -0
  208. package/dist/schema-definitions/models/ParkingSourcesModel.js +20 -0
  209. package/dist/schema-definitions/models/ParkingSourcesModel.js.map +1 -0
  210. package/dist/schema-definitions/models/interfaces/IAddress.d.ts +8 -0
  211. package/dist/schema-definitions/models/interfaces/IAddress.js +3 -0
  212. package/dist/schema-definitions/models/interfaces/IAddress.js.map +1 -0
  213. package/dist/schema-definitions/models/interfaces/IParking.d.ts +28 -0
  214. package/dist/schema-definitions/models/interfaces/IParking.js +3 -0
  215. package/dist/schema-definitions/models/interfaces/IParking.js.map +1 -0
  216. package/dist/schema-definitions/models/interfaces/IParkingLocation.d.ts +13 -0
  217. package/dist/schema-definitions/models/interfaces/IParkingLocation.js +3 -0
  218. package/dist/schema-definitions/models/interfaces/IParkingLocation.js.map +1 -0
  219. package/dist/schema-definitions/models/interfaces/IParkingMachine.d.ts +10 -0
  220. package/dist/schema-definitions/models/interfaces/IParkingMachine.js +3 -0
  221. package/dist/schema-definitions/models/interfaces/IParkingMachine.js.map +1 -0
  222. package/dist/schema-definitions/{datasources → models}/interfaces/IParkingTariffDto.d.ts +8 -2
  223. package/dist/schema-definitions/models/interfaces/IParkingTariffDto.js.map +1 -0
  224. package/dist/schema-definitions/models/interfaces/tariff/IParkingTariffPeriod.d.ts +6 -0
  225. package/dist/schema-definitions/models/interfaces/tariff/IParkingTariffPeriod.js +3 -0
  226. package/dist/schema-definitions/models/interfaces/tariff/IParkingTariffPeriod.js.map +1 -0
  227. package/docs/implementation-documentation.md +116 -13
  228. package/docs/openapi-admin-input.yaml +90 -0
  229. package/docs/openapi-output.yaml +891 -58
  230. package/package.json +5 -3
  231. package/dist/schema-definitions/datasources/interfaces/IParkingTariffDto.js.map +0 -1
  232. /package/dist/schema-definitions/{datasources → models}/interfaces/IParkingTariffDto.js +0 -0
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.v3ParkingRouter = void 0;
4
+ const V3ParkingController_1 = require("../../controllers/v3/V3ParkingController");
5
+ const Di_1 = require("../../ioc/Di");
6
+ const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
7
+ const AbstractRouter_1 = require("@golemio/core/dist/helpers/routing/AbstractRouter");
8
+ const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
9
+ const redis_1 = require("@golemio/core/dist/output-gateway/redis");
10
+ const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
11
+ const constants_1 = require("../constants");
12
+ class V3ParkingRouter extends AbstractRouter_1.AbstractRouter {
13
+ constructor() {
14
+ super(constants_1.RouteVersion.v3, "parking");
15
+ this.allowedAccessDedicatedTo = [
16
+ "disabled",
17
+ "charging",
18
+ "parent",
19
+ "delivery",
20
+ "customer",
21
+ "resident",
22
+ "bus",
23
+ "designated",
24
+ "truck",
25
+ "all",
26
+ "motorcycle",
27
+ "RV",
28
+ ];
29
+ this.controller = new V3ParkingController_1.V3ParkingController();
30
+ this.primarySourceValidator = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.PrimarySourceValidator);
31
+ this.initRoutes();
32
+ }
33
+ initRoutes(expire) {
34
+ this.router.get("/", [
35
+ (0, express_validator_1.query)("primarySource").optional().custom(this.primarySourceValidator.validate),
36
+ (0, express_validator_1.query)("primarySourceId").optional().isString().isUUID(),
37
+ (0, express_validator_1.query)("validFrom").optional().isISO8601(),
38
+ (0, express_validator_1.query)("boundingBox")
39
+ .optional()
40
+ .isString()
41
+ .matches(/^\d+\.?\d*(,\d+\.?\d*){3}$/),
42
+ (0, express_validator_1.oneOf)([
43
+ [
44
+ (0, express_validator_1.query)("accessDedicatedTo").optional().isArray(),
45
+ (0, express_validator_1.query)("accessDedicatedTo.*").optional().isString().isIn(this.allowedAccessDedicatedTo),
46
+ ],
47
+ (0, express_validator_1.query)("accessDedicatedTo").optional().isString().isIn(this.allowedAccessDedicatedTo),
48
+ ]),
49
+ (0, express_validator_1.query)("minutesBefore").optional().isInt({ min: 1 }),
50
+ (0, express_validator_1.query)("updatedSince").optional().isISO8601(),
51
+ ], Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)(this.path), (0, redis_1.useCacheMiddleware)(), this.controller.getAll);
52
+ this.router.get("/:id", (0, express_validator_1.param)("id").exists().isUUID(), Validation_1.checkErrors, (0, redis_1.useCacheMiddleware)(), this.controller.getOne);
53
+ }
54
+ }
55
+ const v3ParkingRouter = new V3ParkingRouter();
56
+ exports.v3ParkingRouter = v3ParkingRouter;
57
+ //# sourceMappingURL=V3ParkingRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V3ParkingRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v3/V3ParkingRouter.ts"],"names":[],"mappings":";;;AAAA,kFAA6E;AAC7E,qCAA+C;AAC/C,yEAAoE;AACpE,sFAAmF;AACnF,6EAAkH;AAClH,mEAA6E;AAC7E,mFAAkF;AAClF,4CAA4C;AAG5C,MAAM,eAAgB,SAAQ,+BAAc;IAkBxC;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAhB9B,6BAAwB,GAAG;YAC/B,UAAU;YACV,UAAU;YACV,QAAQ;YACR,UAAU;YACV,UAAU;YACV,UAAU;YACV,KAAK;YACL,YAAY;YACZ,OAAO;YACP,KAAK;YACL,YAAY;YACZ,IAAI;SACP,CAAC;QAKE,IAAI,CAAC,UAAU,GAAG,IAAI,yCAAmB,EAAE,CAAC;QAC5C,IAAI,CAAC,sBAAsB,GAAG,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QAErG,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU,CAAC,MAAoC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;YAC9E,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;YACvD,IAAA,yBAAK,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;YACzC,IAAA,yBAAK,EAAC,aAAa,CAAC;iBACf,QAAQ,EAAE;iBACV,QAAQ,EAAE;iBACV,OAAO,CAAC,4BAA4B,CAAC;YAC1C,IAAA,yBAAK,EAAC;gBACF;oBACI,IAAA,yBAAK,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;oBAC/C,IAAA,yBAAK,EAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;iBACzF;gBACD,IAAA,yBAAK,EAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC;aACvF,CAAC;YACF,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YACnD,IAAA,yBAAK,EAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;SAC/C,EACD,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAA,0BAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAW,EAAE,IAAA,0BAAkB,GAAE,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACtH,CAAC;CACJ;AAED,MAAM,eAAe,GAAmB,IAAI,eAAe,EAAE,CAAC;AAErD,0CAAe"}
@@ -0,0 +1,3 @@
1
+ import { AbstractRouter } from "@golemio/core/dist/helpers/routing/AbstractRouter";
2
+ declare const v3ParkingTariffRouter: AbstractRouter;
3
+ export { v3ParkingTariffRouter };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.v3ParkingTariffRouter = void 0;
4
+ const Di_1 = require("../../ioc/Di");
5
+ const V3ParkingTariffsController_1 = require("../../controllers/v3/V3ParkingTariffsController");
6
+ const ModuleContainerToken_1 = require("../../ioc/ModuleContainerToken");
7
+ const AbstractRouter_1 = require("@golemio/core/dist/helpers/routing/AbstractRouter");
8
+ const Validation_1 = require("@golemio/core/dist/output-gateway/Validation");
9
+ const redis_1 = require("@golemio/core/dist/output-gateway/redis");
10
+ const express_validator_1 = require("@golemio/core/dist/shared/express-validator");
11
+ const constants_1 = require("../constants");
12
+ class V3ParkingTariffsRouter extends AbstractRouter_1.AbstractRouter {
13
+ constructor() {
14
+ super(constants_1.RouteVersion.v3, "parking-tariffs");
15
+ this.controller = new V3ParkingTariffsController_1.V3ParkingTariffsController();
16
+ this.primarySourceValidator = Di_1.ParkingsContainer.resolve(ModuleContainerToken_1.ModuleContainerToken.PrimarySourceValidator);
17
+ this.initRoutes();
18
+ }
19
+ initRoutes(expire) {
20
+ this.router.get("/", [
21
+ (0, express_validator_1.query)("primarySource").optional().custom(this.primarySourceValidator.validate),
22
+ (0, express_validator_1.query)("primarySourceId").optional().isString().isUUID(),
23
+ (0, express_validator_1.query)("validFrom").optional().isISO8601(),
24
+ (0, express_validator_1.query)("validTo").optional().isISO8601(),
25
+ ], Validation_1.pagination, Validation_1.checkErrors, (0, Validation_1.paginationLimitMiddleware)(this.path), (0, redis_1.useCacheMiddleware)(), this.controller.getAll);
26
+ this.router.get("/:id", (0, express_validator_1.param)("id").exists().isUUID(), Validation_1.checkErrors, (0, redis_1.useCacheMiddleware)(), this.controller.getOne);
27
+ }
28
+ }
29
+ const v3ParkingTariffRouter = new V3ParkingTariffsRouter();
30
+ exports.v3ParkingTariffRouter = v3ParkingTariffRouter;
31
+ //# sourceMappingURL=V3ParkingTariffsRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"V3ParkingTariffsRouter.js","sourceRoot":"","sources":["../../../../src/output-gateway/routers/v3/V3ParkingTariffsRouter.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAC/C,gGAA2F;AAC3F,yEAAoE;AACpE,sFAAmF;AACnF,6EAAkH;AAClH,mEAA6E;AAC7E,mFAA2E;AAC3E,4CAA4C;AAG5C,MAAM,sBAAuB,SAAQ,+BAAc;IAI/C;QACI,KAAK,CAAC,wBAAY,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAE1C,IAAI,CAAC,UAAU,GAAG,IAAI,uDAA0B,EAAE,CAAC;QACnD,IAAI,CAAC,sBAAsB,GAAG,sBAAiB,CAAC,OAAO,CAAC,2CAAoB,CAAC,sBAAsB,CAAC,CAAC;QACrG,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAES,UAAU,CAAC,MAAoC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CACX,GAAG,EACH;YACI,IAAA,yBAAK,EAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;YAC9E,IAAA,yBAAK,EAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE;YACvD,IAAA,yBAAK,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;YACzC,IAAA,yBAAK,EAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE;SAC1C,EACD,uBAAU,EACV,wBAAW,EACX,IAAA,sCAAyB,EAAC,IAAI,CAAC,IAAI,CAAC,EACpC,IAAA,0BAAkB,GAAE,EACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CACzB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAA,yBAAK,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,wBAAW,EAAE,IAAA,0BAAkB,GAAE,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACtH,CAAC;CACJ;AAED,MAAM,qBAAqB,GAAmB,IAAI,sBAAsB,EAAE,CAAC;AAElE,sDAAqB"}
@@ -0,0 +1,8 @@
1
+ import { CachedParkingSourcesRepository } from "../../../../helpers/data-access/CachedParkingSourcesRepository";
2
+ import { CustomValidator } from "@golemio/core/dist/shared/express-validator";
3
+ export declare class PrimarySourceValidator {
4
+ private repository;
5
+ constructor(repository: CachedParkingSourcesRepository);
6
+ validate: CustomValidator;
7
+ validateLegacy: CustomValidator;
8
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.PrimarySourceValidator = void 0;
25
+ const CachedParkingSourcesRepository_1 = require("../../../../helpers/data-access/CachedParkingSourcesRepository");
26
+ const ModuleContainerToken_1 = require("../../../ioc/ModuleContainerToken");
27
+ const tsyringe_1 = require("@golemio/core/dist/shared/tsyringe");
28
+ let PrimarySourceValidator = exports.PrimarySourceValidator = class PrimarySourceValidator {
29
+ constructor(repository) {
30
+ this.repository = repository;
31
+ this.validate = (value, options) => __awaiter(this, void 0, void 0, function* () {
32
+ const allowedSources = yield this.repository.getV3Sources();
33
+ if (value instanceof Array) {
34
+ return value.every((source) => allowedSources.includes(source));
35
+ }
36
+ else {
37
+ return allowedSources.includes(value);
38
+ }
39
+ });
40
+ this.validateLegacy = (value, options) => __awaiter(this, void 0, void 0, function* () {
41
+ const allowedSources = yield this.repository.getLegacySources();
42
+ if (value instanceof Array) {
43
+ return value.every((source) => allowedSources.includes(source));
44
+ }
45
+ else {
46
+ return allowedSources.includes(value);
47
+ }
48
+ });
49
+ }
50
+ };
51
+ exports.PrimarySourceValidator = PrimarySourceValidator = __decorate([
52
+ (0, tsyringe_1.injectable)(),
53
+ __param(0, (0, tsyringe_1.inject)(ModuleContainerToken_1.ModuleContainerToken.CachedParkingSourcesRepository)),
54
+ __metadata("design:paramtypes", [CachedParkingSourcesRepository_1.CachedParkingSourcesRepository])
55
+ ], PrimarySourceValidator);
56
+ //# sourceMappingURL=PrimarySourceValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrimarySourceValidator.js","sourceRoot":"","sources":["../../../../../src/output-gateway/routers/v3/helpers/PrimarySourceValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,mHAAqG;AACrG,4EAAoE;AAEpE,iEAAwE;AAGjE,IAAM,sBAAsB,oCAA5B,MAAM,sBAAsB;IAC/B,YACiE,UAAkD;QAA1C,eAAU,GAAV,UAAU,CAAgC;QAG5G,aAAQ,GAAoB,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YACxD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAE5D,IAAI,KAAK,YAAY,KAAK,EAAE;gBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aAC3E;iBAAM;gBACH,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;QACL,CAAC,CAAA,CAAC;QAEK,mBAAc,GAAoB,CAAO,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAEhE,IAAI,KAAK,YAAY,KAAK,EAAE;gBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;aAC3E;iBAAM;gBACH,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACzC;QACL,CAAC,CAAA,CAAC;IApBC,CAAC;CAqBP,CAAA;iCAxBY,sBAAsB;IADlC,IAAA,qBAAU,GAAE;IAGJ,WAAA,IAAA,iBAAM,EAAC,2CAAoB,CAAC,8BAA8B,CAAC,CAAA;qCAAqB,+DAA8B;GAF1G,sBAAsB,CAwBlC"}
@@ -0,0 +1,27 @@
1
+ import { IParkingTariffPeriod } from "../../../../schema-definitions/models/interfaces/tariff/IParkingTariffPeriod";
2
+ export interface IV3Charge {
3
+ id: string;
4
+ charge: string;
5
+ charge_type: string;
6
+ charge_order_index: number;
7
+ charge_interval: number;
8
+ max_iterations_of_charge: number;
9
+ min_iterations_of_charge: number;
10
+ valid_from: string;
11
+ valid_to: string;
12
+ periods_of_time: IParkingTariffPeriod[];
13
+ }
14
+ export interface IV3ChargeBand {
15
+ primary_source: string;
16
+ primary_source_id: string;
17
+ maximum_duration: number;
18
+ valid_from: string;
19
+ valid_to: string;
20
+ last_updated: Date;
21
+ last_modified_at_source: Date;
22
+ charges: Array<Partial<IV3Charge>>;
23
+ }
24
+ export interface IV3ParkingTariffDto {
25
+ id: string;
26
+ charge_bands: Array<Partial<IV3ChargeBand>>;
27
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IV3ParkingTariffDto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IV3ParkingTariffDto.js","sourceRoot":"","sources":["../../../../../src/output-gateway/transformations/interfaces/v3/IV3ParkingTariffDto.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { IParkingWithLocation } from "../../../schema-definitions/models/interfaces/IParking";
2
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
3
+ import { IGeoJSONFeature } from "@golemio/core/dist/output-gateway/Geo";
4
+ export declare class ParkingDtoTransformation extends AbstractTransformation<IParkingWithLocation, IGeoJSONFeature> {
5
+ name: string;
6
+ transformToFeatureCollection: (elements: IParkingWithLocation[]) => import("@golemio/core/dist/output-gateway/Geo").IGeoJSONFeatureCollection;
7
+ protected transformInternal: (element: IParkingWithLocation) => IGeoJSONFeature;
8
+ private transformLocation;
9
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParkingDtoTransformation = void 0;
4
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
5
+ const Geo_1 = require("@golemio/core/dist/output-gateway/Geo");
6
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
7
+ class ParkingDtoTransformation extends AbstractTransformation_1.AbstractTransformation {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = "ParkingDtoTransformation";
11
+ this.transformToFeatureCollection = (elements) => {
12
+ try {
13
+ return (0, Geo_1.buildGeojsonFeatureCollection)(this.transformArray(elements));
14
+ }
15
+ catch (err) {
16
+ throw new golemio_errors_1.GeneralError("Transformation error", this.name, err, 500);
17
+ }
18
+ };
19
+ this.transformInternal = (element) => {
20
+ var _a, _b;
21
+ const properties = {
22
+ id: element.id,
23
+ primary_source: element.source,
24
+ primary_source_id: element.source_id,
25
+ name: element.name,
26
+ valid_from: element.valid_from,
27
+ centroid: (element === null || element === void 0 ? void 0 : element.centroid)
28
+ ? {
29
+ type: (_a = element === null || element === void 0 ? void 0 : element.centroid) === null || _a === void 0 ? void 0 : _a.type,
30
+ coordinates: (_b = element === null || element === void 0 ? void 0 : element.centroid) === null || _b === void 0 ? void 0 : _b.coordinates,
31
+ }
32
+ : undefined,
33
+ last_updated_at: element.updated_at,
34
+ last_modified_at_source: element.date_modified,
35
+ space: (0, Geo_1.buildGeojsonFeatureCollection)(element.parking_locations.map(this.transformLocation)),
36
+ tariff: element.tariff_id,
37
+ };
38
+ return {
39
+ geometry: {
40
+ coordinates: element.location.coordinates,
41
+ type: element.location.type,
42
+ },
43
+ properties: properties,
44
+ type: "Feature",
45
+ };
46
+ };
47
+ this.transformLocation = (element) => {
48
+ const properties = {
49
+ id: element.id,
50
+ capacity: element.total_spot_number,
51
+ filter: "blue",
52
+ access_dedicated_to: element.special_access ? [element.special_access] : [],
53
+ address: element.address,
54
+ restriction: [], // Not implemented for TSKv2
55
+ };
56
+ return {
57
+ geometry: {
58
+ coordinates: element.location.coordinates,
59
+ type: element.location.type,
60
+ },
61
+ properties: properties,
62
+ type: "Feature",
63
+ };
64
+ };
65
+ }
66
+ }
67
+ exports.ParkingDtoTransformation = ParkingDtoTransformation;
68
+ //# sourceMappingURL=ParkingDtoTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParkingDtoTransformation.js","sourceRoot":"","sources":["../../../../src/output-gateway/transformations/v3/ParkingDtoTransformation.ts"],"names":[],"mappings":";;;AAEA,6GAA0G;AAC1G,+DAAuG;AACvG,6EAAwE;AAExE,MAAa,wBAAyB,SAAQ,+CAA6D;IAA3G;;QACW,SAAI,GAAW,0BAA0B,CAAC;QAE1C,iCAA4B,GAAG,CAAC,QAAgC,EAAE,EAAE;YACvE,IAAI;gBACA,OAAO,IAAA,mCAA6B,EAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;aACvE;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACvE;QACL,CAAC,CAAC;QAEQ,sBAAiB,GAAG,CAAC,OAA6B,EAAE,EAAE;;YAC5D,MAAM,UAAU,GAAG;gBACf,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,cAAc,EAAE,OAAO,CAAC,MAAM;gBAC9B,iBAAiB,EAAE,OAAO,CAAC,SAAS;gBACpC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;oBACvB,CAAC,CAAC;wBACI,IAAI,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,0CAAE,IAAI;wBAC7B,WAAW,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,0CAAE,WAAW;qBAC9C;oBACH,CAAC,CAAC,SAAS;gBACf,eAAe,EAAE,OAAO,CAAC,UAAU;gBACnC,uBAAuB,EAAE,OAAO,CAAC,aAAa;gBAC9C,KAAK,EAAE,IAAA,mCAA6B,EAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC3F,MAAM,EAAE,OAAO,CAAC,SAAS;aAC5B,CAAC;YAEF,OAAO;gBACH,QAAQ,EAAE;oBACN,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;oBACzC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;iBAC9B;gBACD,UAAU,EAAE,UAAU;gBACtB,IAAI,EAAE,SAAS;aACC,CAAC;QACzB,CAAC,CAAC;QAEM,sBAAiB,GAAG,CAAC,OAAyB,EAAE,EAAE;YACtD,MAAM,UAAU,GAAG;gBACf,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,QAAQ,EAAE,OAAO,CAAC,iBAAiB;gBACnC,MAAM,EAAE,MAAM;gBACd,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3E,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,WAAW,EAAE,EAAE,EAAE,4BAA4B;aAChD,CAAC;YAEF,OAAO;gBACH,QAAQ,EAAE;oBACN,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;oBACzC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;iBAC9B;gBACD,UAAU,EAAE,UAAU;gBACtB,IAAI,EAAE,SAAS;aACC,CAAC;QACzB,CAAC,CAAC;IACN,CAAC;CAAA;AA3DD,4DA2DC"}
@@ -0,0 +1,8 @@
1
+ import { IParkingMachine } from "../../../schema-definitions/models/interfaces/IParkingMachine";
2
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
3
+ import { IGeoJSONFeature } from "@golemio/core/dist/output-gateway/Geo";
4
+ export declare class ParkingMachinesDtoTransformation extends AbstractTransformation<IParkingMachine, IGeoJSONFeature> {
5
+ name: string;
6
+ transformToFeatureCollection: (elements: IParkingMachine[]) => import("@golemio/core/dist/output-gateway/Geo").IGeoJSONFeatureCollection;
7
+ protected transformInternal: (element: IParkingMachine) => IGeoJSONFeature;
8
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParkingMachinesDtoTransformation = void 0;
4
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
5
+ const Geo_1 = require("@golemio/core/dist/output-gateway/Geo");
6
+ const golemio_errors_1 = require("@golemio/core/dist/shared/golemio-errors");
7
+ class ParkingMachinesDtoTransformation extends AbstractTransformation_1.AbstractTransformation {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.name = "ParkingMachinesDtoTransformation";
11
+ this.transformToFeatureCollection = (elements) => {
12
+ try {
13
+ return (0, Geo_1.buildGeojsonFeatureCollection)(this.transformArray(elements));
14
+ }
15
+ catch (err) {
16
+ throw new golemio_errors_1.GeneralError("Transformation error", this.name, err, 500);
17
+ }
18
+ };
19
+ this.transformInternal = (element) => {
20
+ return (0, Geo_1.buildGeojsonFeature)({
21
+ id: element.id,
22
+ primary_source: element.source,
23
+ primary_source_id: element.id,
24
+ code: element.code,
25
+ machine_type: element.type,
26
+ valid_from: element.validFrom,
27
+ tariff_id: element.tariffId,
28
+ lon: element.location.coordinates[0],
29
+ lat: element.location.coordinates[1],
30
+ }, "lon", "lat", true);
31
+ };
32
+ }
33
+ }
34
+ exports.ParkingMachinesDtoTransformation = ParkingMachinesDtoTransformation;
35
+ //# sourceMappingURL=ParkingMachinesDtoTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParkingMachinesDtoTransformation.js","sourceRoot":"","sources":["../../../../src/output-gateway/transformations/v3/ParkingMachinesDtoTransformation.ts"],"names":[],"mappings":";;;AACA,6GAA0G;AAC1G,+DAA4H;AAE5H,6EAAwE;AAExE,MAAa,gCAAiC,SAAQ,+CAAwD;IAA9G;;QACW,SAAI,GAAW,kCAAkC,CAAC;QAElD,iCAA4B,GAAG,CAAC,QAA2B,EAAE,EAAE;YAClE,IAAI;gBACA,OAAO,IAAA,mCAA6B,EAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;aACvE;YAAC,OAAO,GAAG,EAAE;gBACV,MAAM,IAAI,6BAAY,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;aACvE;QACL,CAAC,CAAC;QAEQ,sBAAiB,GAAG,CAAC,OAAwB,EAAE,EAAE;YACvD,OAAO,IAAA,yBAAmB,EACtB;gBACI,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,cAAc,EAAE,OAAO,CAAC,MAAM;gBAC9B,iBAAiB,EAAE,OAAO,CAAC,EAAE;gBAC7B,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,YAAY,EAAE,OAAO,CAAC,IAAI;gBAC1B,UAAU,EAAE,OAAO,CAAC,SAAS;gBAC7B,SAAS,EAAE,OAAO,CAAC,QAAQ;gBAC3B,GAAG,EAAG,OAAO,CAAC,QAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/C,GAAG,EAAG,OAAO,CAAC,QAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;aAClD,EACD,KAAK,EACL,KAAK,EACL,IAAI,CACP,CAAC;QACN,CAAC,CAAC;IACN,CAAC;CAAA;AA7BD,4EA6BC"}
@@ -0,0 +1,11 @@
1
+ import { IParkingTariffDto } from "../../../schema-definitions/models/interfaces/IParkingTariffDto";
2
+ import { AbstractTransformation } from "@golemio/core/dist/helpers/transformation/AbstractTransformation";
3
+ import { IV3ParkingTariffDto } from "../interfaces/v3/IV3ParkingTariffDto";
4
+ export declare class ParkingTariffDtoTransformation extends AbstractTransformation<IParkingTariffDto[], Array<Partial<IV3ParkingTariffDto>>> {
5
+ name: string;
6
+ protected transformInternal: (elements: IParkingTariffDto[]) => IV3ParkingTariffDto[];
7
+ private transformToChargeBands;
8
+ private transformToCharges;
9
+ private minDate;
10
+ private maxDate;
11
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParkingTariffDtoTransformation = void 0;
4
+ const AbstractTransformation_1 = require("@golemio/core/dist/helpers/transformation/AbstractTransformation");
5
+ const luxon_1 = require("luxon");
6
+ class ParkingTariffDtoTransformation extends AbstractTransformation_1.AbstractTransformation {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.name = "ParkingTariffDtoTransformation";
10
+ this.transformInternal = (elements) => {
11
+ const groupedById = elements.reduce((acc, curr) => {
12
+ if (!acc[curr.tariff_id]) {
13
+ acc[curr.tariff_id] = [];
14
+ }
15
+ acc[curr.tariff_id].push(curr);
16
+ return acc;
17
+ }, {});
18
+ return Object.keys(groupedById).map((key) => {
19
+ const result = {
20
+ id: key,
21
+ charge_bands: this.transformToChargeBands(groupedById[key]),
22
+ };
23
+ return result;
24
+ });
25
+ };
26
+ }
27
+ transformToChargeBands(sameTariff) {
28
+ const groupedChargeBands = sameTariff.reduce((acc, curr) => {
29
+ if (!acc[curr.charge_band_name]) {
30
+ acc[curr.charge_band_name] = [];
31
+ }
32
+ acc[curr.charge_band_name].push(curr);
33
+ return acc;
34
+ }, {});
35
+ return Object.keys(groupedChargeBands).map((key) => {
36
+ const element = groupedChargeBands[key][0];
37
+ const charbandValidFrom = this.minDate(groupedChargeBands[key].map((element) => element.valid_from));
38
+ const charbandValidTo = this.maxDate(groupedChargeBands[key].map((element) => element.valid_to));
39
+ return {
40
+ primary_source: element.source,
41
+ primary_source_id: element.tariff_id,
42
+ maximum_duration: element.maximum_duration_seconds,
43
+ valid_from: charbandValidFrom,
44
+ valid_to: charbandValidTo,
45
+ last_updated: element.updated_at,
46
+ last_modified_at_source: element.last_updated,
47
+ charges: this.transformToCharges(groupedChargeBands[key]),
48
+ };
49
+ });
50
+ }
51
+ transformToCharges(elements) {
52
+ return elements.map((element) => {
53
+ var _a, _b;
54
+ return {
55
+ id: element.tariff_id,
56
+ charge: element.charge,
57
+ charge_type: element.charge_type,
58
+ charge_order_index: element.charge_order_index,
59
+ charge_interval: element.charge_interval,
60
+ max_iterations_of_charge: element.max_iterations_of_charge,
61
+ min_iterations_of_charge: element.min_iterations_of_charge,
62
+ valid_from: (_a = element.valid_from) === null || _a === void 0 ? void 0 : _a.toISOString(),
63
+ valid_to: (_b = element.valid_to) === null || _b === void 0 ? void 0 : _b.toISOString(),
64
+ periods_of_time: element.periods_of_time,
65
+ };
66
+ });
67
+ }
68
+ minDate(isoStrings) {
69
+ isoStrings = isoStrings.filter((el) => el !== null);
70
+ if (isoStrings.length === 0) {
71
+ return null;
72
+ }
73
+ return luxon_1.DateTime.min(...isoStrings.map((el) => luxon_1.DateTime.fromJSDate(el)))
74
+ .toJSDate()
75
+ .toISOString();
76
+ }
77
+ maxDate(isoStrings) {
78
+ isoStrings = isoStrings.filter((el) => el !== null);
79
+ if (isoStrings.length === 0) {
80
+ return null;
81
+ }
82
+ return luxon_1.DateTime.max(...isoStrings.map((el) => luxon_1.DateTime.fromJSDate(el)))
83
+ .toJSDate()
84
+ .toISOString();
85
+ }
86
+ }
87
+ exports.ParkingTariffDtoTransformation = ParkingTariffDtoTransformation;
88
+ //# sourceMappingURL=ParkingTariffDtoTransformation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParkingTariffDtoTransformation.js","sourceRoot":"","sources":["../../../../src/output-gateway/transformations/v3/ParkingTariffDtoTransformation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
+ import { IParkingSource } from "../../helpers/interfaces/IParkingSource";
3
+ export declare const InputParkingSourceSchema: JSONSchemaType<IParkingSource>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InputParkingSourceSchema = void 0;
4
+ exports.InputParkingSourceSchema = {
5
+ type: "object",
6
+ properties: {
7
+ source: { type: "string" },
8
+ open_data: { type: "boolean" },
9
+ api_v3_allowed: { type: "boolean" },
10
+ legacy_api_allowed: { type: "boolean" },
11
+ payment_url: { oneOf: [{ type: "string" }, { type: "null", nullable: true }] },
12
+ contact: { oneOf: [{ type: "object" }, { type: "null", nullable: true }] },
13
+ },
14
+ required: ["source", "open_data", "api_v3_allowed", "legacy_api_allowed"],
15
+ additionalProperties: false,
16
+ };
17
+ //# sourceMappingURL=InputParkingSourceSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputParkingSourceSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/datasources/InputParkingSourceSchema.ts"],"names":[],"mappings":";;;AAGa,QAAA,wBAAwB,GAAmC;IACpE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC9B,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,kBAAkB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;QAC9E,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE;KAC7E;IACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;IACzE,oBAAoB,EAAE,KAAK;CAC9B,CAAC"}
@@ -1,4 +1,112 @@
1
- import { JSONSchemaType } from "@golemio/core/dist/shared/ajv";
2
- import { IParkingTariffDto } from "./interfaces/IParkingTariffDto";
3
- declare const parkingstariffDtoSchema: JSONSchemaType<IParkingTariffDto[]>;
1
+ declare const parkingstariffDtoSchema: {
2
+ type: string;
3
+ items: {
4
+ type: string;
5
+ properties: {
6
+ tariff_id: {
7
+ type: string;
8
+ };
9
+ source: {
10
+ type: string;
11
+ };
12
+ last_updated: {
13
+ type: string;
14
+ };
15
+ payment_mode: {
16
+ type: string;
17
+ };
18
+ payment_additional_description: {
19
+ type: string;
20
+ };
21
+ free_of_charge: {
22
+ type: string;
23
+ };
24
+ url_link_address: {
25
+ type: string;
26
+ };
27
+ charge_band_name: {
28
+ type: string;
29
+ };
30
+ accepts_payment_card: {
31
+ type: string;
32
+ };
33
+ accepts_cash: {
34
+ type: string;
35
+ };
36
+ accepts_mobile_payment: {
37
+ type: string;
38
+ };
39
+ accepts_litacka: {
40
+ type: string;
41
+ };
42
+ charge_currency: {
43
+ type: string;
44
+ };
45
+ charge: {
46
+ type: string;
47
+ };
48
+ charge_type: {
49
+ type: string;
50
+ };
51
+ charge_order_index: {
52
+ type: string;
53
+ };
54
+ charge_interval: {
55
+ type: string;
56
+ };
57
+ max_iterations_of_charge: {
58
+ type: string;
59
+ };
60
+ min_iterations_of_charge: {
61
+ type: string;
62
+ };
63
+ start_time_of_period: {
64
+ type: string;
65
+ };
66
+ end_time_of_period: {
67
+ type: string;
68
+ };
69
+ allowed_vehicle_type: {
70
+ type: string;
71
+ };
72
+ allowed_fuel_type: {
73
+ type: string;
74
+ };
75
+ valid_from: {
76
+ type: string;
77
+ format: string;
78
+ };
79
+ valid_to: {
80
+ type: string;
81
+ format: string;
82
+ };
83
+ maximum_duration_seconds: {
84
+ type: string;
85
+ };
86
+ periods_of_time: {
87
+ type: string;
88
+ items: {
89
+ type: string;
90
+ properties: {
91
+ day_in_week: {
92
+ type: string;
93
+ };
94
+ start: {
95
+ type: string;
96
+ };
97
+ end: {
98
+ type: string;
99
+ };
100
+ ph: {
101
+ type: string;
102
+ };
103
+ };
104
+ required: string[];
105
+ };
106
+ };
107
+ };
108
+ required: string[];
109
+ additionalProperties: boolean;
110
+ };
111
+ };
4
112
  export { parkingstariffDtoSchema as ParkingsTariffDtoSchema };
@@ -29,6 +29,22 @@ const parkingstariffDtoSchema = {
29
29
  end_time_of_period: { type: "string" },
30
30
  allowed_vehicle_type: { type: "string" },
31
31
  allowed_fuel_type: { type: "string" },
32
+ valid_from: { type: "string", format: "date-time" },
33
+ valid_to: { type: "string", format: "date-time" },
34
+ maximum_duration_seconds: { type: "number" },
35
+ periods_of_time: {
36
+ type: "array",
37
+ items: {
38
+ type: "object",
39
+ properties: {
40
+ day_in_week: { type: "string" },
41
+ start: { type: "string" },
42
+ end: { type: "string" },
43
+ ph: { type: "string" },
44
+ },
45
+ required: ["day_in_week", "start", "end", "ph"],
46
+ },
47
+ },
32
48
  },
33
49
  required: ["tariff_id", "source", "charge_order_index"],
34
50
  additionalProperties: false,
@@ -1 +1 @@
1
- {"version":3,"file":"ParkingTariffDtoSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/datasources/ParkingTariffDtoSchema.ts"],"names":[],"mappings":";;;AAGA,MAAM,uBAAuB,GAAwC;IACjE,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,8BAA8B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3C,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5C,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5C,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxC,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACxC;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,oBAAoB,CAAC;QACvD,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC;AAEkC,0DAAuB"}
1
+ {"version":3,"file":"ParkingTariffDtoSchema.js","sourceRoot":"","sources":["../../../src/schema-definitions/datasources/ParkingTariffDtoSchema.ts"],"names":[],"mappings":";;;AAAA,MAAM,uBAAuB,GAAG;IAC5B,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACH,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACR,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAChC,8BAA8B,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAClD,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACpC,oBAAoB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACzC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,sBAAsB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3C,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YACpC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC1B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtC,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5C,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5C,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxC,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACtC,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxC,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YACnD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;YACjD,wBAAwB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5C,eAAe,EAAE;gBACb,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACH,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACR,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACvB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACzB;oBACD,QAAQ,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;iBAClD;aACJ;SACJ;QACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,oBAAoB,CAAC;QACvD,oBAAoB,EAAE,KAAK;KAC9B;CACJ,CAAC;AAEkC,0DAAuB"}