@zetra/citrineos-data 1.8.3-fork.1

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 (417) hide show
  1. package/dist/index.d.ts +9 -0
  2. package/dist/index.js +12 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/interfaces/dtos/GenerateCertificateChainRequest.d.ts +13 -0
  5. package/dist/interfaces/dtos/GenerateCertificateChainRequest.js +30 -0
  6. package/dist/interfaces/dtos/GenerateCertificateChainRequest.js.map +1 -0
  7. package/dist/interfaces/dtos/InstallRootCertificateRequest.d.ts +9 -0
  8. package/dist/interfaces/dtos/InstallRootCertificateRequest.js +22 -0
  9. package/dist/interfaces/dtos/InstallRootCertificateRequest.js.map +1 -0
  10. package/dist/interfaces/dtos/RegenerateExistingCertificate.d.ts +4 -0
  11. package/dist/interfaces/dtos/RegenerateExistingCertificate.js +8 -0
  12. package/dist/interfaces/dtos/RegenerateExistingCertificate.js.map +1 -0
  13. package/dist/interfaces/dtos/TlsCertificatesRequest.d.ts +7 -0
  14. package/dist/interfaces/dtos/TlsCertificatesRequest.js +17 -0
  15. package/dist/interfaces/dtos/TlsCertificatesRequest.js.map +1 -0
  16. package/dist/interfaces/dtos/UploadExistingCertificate.d.ts +6 -0
  17. package/dist/interfaces/dtos/UploadExistingCertificate.js +10 -0
  18. package/dist/interfaces/dtos/UploadExistingCertificate.js.map +1 -0
  19. package/dist/interfaces/index.d.ts +35 -0
  20. package/dist/interfaces/index.js +28 -0
  21. package/dist/interfaces/index.js.map +1 -0
  22. package/dist/interfaces/projections/AuthorizationRestrictions.d.ts +18 -0
  23. package/dist/interfaces/projections/AuthorizationRestrictions.js +5 -0
  24. package/dist/interfaces/projections/AuthorizationRestrictions.js.map +1 -0
  25. package/dist/interfaces/projections/schemas/AuthorizationRestrictionsSchema.json +20 -0
  26. package/dist/interfaces/projections/schemas/TariffSchema.json +37 -0
  27. package/dist/interfaces/queries/Authorization.d.ts +5 -0
  28. package/dist/interfaces/queries/Authorization.js +17 -0
  29. package/dist/interfaces/queries/Authorization.js.map +1 -0
  30. package/dist/interfaces/queries/ChargingStation.d.ts +5 -0
  31. package/dist/interfaces/queries/ChargingStation.js +18 -0
  32. package/dist/interfaces/queries/ChargingStation.js.map +1 -0
  33. package/dist/interfaces/queries/Connection.d.ts +5 -0
  34. package/dist/interfaces/queries/Connection.js +17 -0
  35. package/dist/interfaces/queries/Connection.js.map +1 -0
  36. package/dist/interfaces/queries/Model.d.ts +5 -0
  37. package/dist/interfaces/queries/Model.js +18 -0
  38. package/dist/interfaces/queries/Model.js.map +1 -0
  39. package/dist/interfaces/queries/NetworkProfile.d.ts +11 -0
  40. package/dist/interfaces/queries/NetworkProfile.js +36 -0
  41. package/dist/interfaces/queries/NetworkProfile.js.map +1 -0
  42. package/dist/interfaces/queries/RootCertificate.d.ts +4 -0
  43. package/dist/interfaces/queries/RootCertificate.js +100 -0
  44. package/dist/interfaces/queries/RootCertificate.js.map +1 -0
  45. package/dist/interfaces/queries/Subscription.d.ts +1 -0
  46. package/dist/interfaces/queries/Subscription.js +37 -0
  47. package/dist/interfaces/queries/Subscription.js.map +1 -0
  48. package/dist/interfaces/queries/Tariff.d.ts +5 -0
  49. package/dist/interfaces/queries/Tariff.js +17 -0
  50. package/dist/interfaces/queries/Tariff.js.map +1 -0
  51. package/dist/interfaces/queries/Tenant.d.ts +5 -0
  52. package/dist/interfaces/queries/Tenant.js +41 -0
  53. package/dist/interfaces/queries/Tenant.js.map +1 -0
  54. package/dist/interfaces/queries/TlsCertificate.d.ts +5 -0
  55. package/dist/interfaces/queries/TlsCertificate.js +32 -0
  56. package/dist/interfaces/queries/TlsCertificate.js.map +1 -0
  57. package/dist/interfaces/queries/TransactionEvent.d.ts +6 -0
  58. package/dist/interfaces/queries/TransactionEvent.js +23 -0
  59. package/dist/interfaces/queries/TransactionEvent.js.map +1 -0
  60. package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.d.ts +5 -0
  61. package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.js +17 -0
  62. package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.js.map +1 -0
  63. package/dist/interfaces/queries/VariableAttribute.d.ts +21 -0
  64. package/dist/interfaces/queries/VariableAttribute.js +71 -0
  65. package/dist/interfaces/queries/VariableAttribute.js.map +1 -0
  66. package/dist/interfaces/queries/Websocket.d.ts +17 -0
  67. package/dist/interfaces/queries/Websocket.js +115 -0
  68. package/dist/interfaces/queries/Websocket.js.map +1 -0
  69. package/dist/interfaces/repositories.d.ts +164 -0
  70. package/dist/interfaces/repositories.js +5 -0
  71. package/dist/interfaces/repositories.js.map +1 -0
  72. package/dist/layers/sequelize/index.d.ts +51 -0
  73. package/dist/layers/sequelize/index.js +58 -0
  74. package/dist/layers/sequelize/index.js.map +1 -0
  75. package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.d.ts +6 -0
  76. package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.js +37 -0
  77. package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.js.map +1 -0
  78. package/dist/layers/sequelize/mapper/1.6/BootMapper.d.ts +4 -0
  79. package/dist/layers/sequelize/mapper/1.6/BootMapper.js +19 -0
  80. package/dist/layers/sequelize/mapper/1.6/BootMapper.js.map +1 -0
  81. package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.d.ts +66 -0
  82. package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.js +82 -0
  83. package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.js.map +1 -0
  84. package/dist/layers/sequelize/mapper/1.6/LocationMapper.d.ts +6 -0
  85. package/dist/layers/sequelize/mapper/1.6/LocationMapper.js +69 -0
  86. package/dist/layers/sequelize/mapper/1.6/LocationMapper.js.map +1 -0
  87. package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.d.ts +65 -0
  88. package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.js +431 -0
  89. package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.js.map +1 -0
  90. package/dist/layers/sequelize/mapper/1.6/index.d.ts +5 -0
  91. package/dist/layers/sequelize/mapper/1.6/index.js +9 -0
  92. package/dist/layers/sequelize/mapper/1.6/index.js.map +1 -0
  93. package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.d.ts +14 -0
  94. package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.js +153 -0
  95. package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.js.map +1 -0
  96. package/dist/layers/sequelize/mapper/2.0.1/BootMapper.d.ts +5 -0
  97. package/dist/layers/sequelize/mapper/2.0.1/BootMapper.js +29 -0
  98. package/dist/layers/sequelize/mapper/2.0.1/BootMapper.js.map +1 -0
  99. package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.d.ts +84 -0
  100. package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.js +152 -0
  101. package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.js.map +1 -0
  102. package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.d.ts +5 -0
  103. package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.js +23 -0
  104. package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.js.map +1 -0
  105. package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.d.ts +45 -0
  106. package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.js +375 -0
  107. package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.js.map +1 -0
  108. package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.d.ts +5 -0
  109. package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.js +18 -0
  110. package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.js.map +1 -0
  111. package/dist/layers/sequelize/mapper/2.0.1/index.d.ts +6 -0
  112. package/dist/layers/sequelize/mapper/2.0.1/index.js +10 -0
  113. package/dist/layers/sequelize/mapper/2.0.1/index.js.map +1 -0
  114. package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.d.ts +45 -0
  115. package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.js +137 -0
  116. package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.js.map +1 -0
  117. package/dist/layers/sequelize/model/AsyncJob/index.d.ts +1 -0
  118. package/dist/layers/sequelize/model/AsyncJob/index.js +5 -0
  119. package/dist/layers/sequelize/model/AsyncJob/index.js.map +1 -0
  120. package/dist/layers/sequelize/model/Authorization/Authorization.d.ts +29 -0
  121. package/dist/layers/sequelize/model/Authorization/Authorization.js +122 -0
  122. package/dist/layers/sequelize/model/Authorization/Authorization.js.map +1 -0
  123. package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.d.ts +39 -0
  124. package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.js +141 -0
  125. package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.js.map +1 -0
  126. package/dist/layers/sequelize/model/Authorization/LocalListVersion.d.ts +15 -0
  127. package/dist/layers/sequelize/model/Authorization/LocalListVersion.js +74 -0
  128. package/dist/layers/sequelize/model/Authorization/LocalListVersion.js.map +1 -0
  129. package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.d.ts +11 -0
  130. package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.js +69 -0
  131. package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.js.map +1 -0
  132. package/dist/layers/sequelize/model/Authorization/SendLocalList.d.ts +17 -0
  133. package/dist/layers/sequelize/model/Authorization/SendLocalList.js +108 -0
  134. package/dist/layers/sequelize/model/Authorization/SendLocalList.js.map +1 -0
  135. package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.d.ts +11 -0
  136. package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.js +69 -0
  137. package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.js.map +1 -0
  138. package/dist/layers/sequelize/model/Authorization/index.d.ts +6 -0
  139. package/dist/layers/sequelize/model/Authorization/index.js +10 -0
  140. package/dist/layers/sequelize/model/Authorization/index.js.map +1 -0
  141. package/dist/layers/sequelize/model/AuthorizationTenant.d.ts +5 -0
  142. package/dist/layers/sequelize/model/AuthorizationTenant.js +32 -0
  143. package/dist/layers/sequelize/model/AuthorizationTenant.js.map +1 -0
  144. package/dist/layers/sequelize/model/BaseModelWithTenant.d.ts +8 -0
  145. package/dist/layers/sequelize/model/BaseModelWithTenant.js +50 -0
  146. package/dist/layers/sequelize/model/BaseModelWithTenant.js.map +1 -0
  147. package/dist/layers/sequelize/model/Boot.d.ts +29 -0
  148. package/dist/layers/sequelize/model/Boot.js +112 -0
  149. package/dist/layers/sequelize/model/Boot.js.map +1 -0
  150. package/dist/layers/sequelize/model/Cdrs/Cdrs.d.ts +105 -0
  151. package/dist/layers/sequelize/model/Cdrs/Cdrs.js +180 -0
  152. package/dist/layers/sequelize/model/Cdrs/Cdrs.js.map +1 -0
  153. package/dist/layers/sequelize/model/Cdrs/index.d.ts +1 -0
  154. package/dist/layers/sequelize/model/Cdrs/index.js +2 -0
  155. package/dist/layers/sequelize/model/Cdrs/index.js.map +1 -0
  156. package/dist/layers/sequelize/model/Certificate/Certificate.d.ts +27 -0
  157. package/dist/layers/sequelize/model/Certificate/Certificate.js +128 -0
  158. package/dist/layers/sequelize/model/Certificate/Certificate.js.map +1 -0
  159. package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.d.ts +17 -0
  160. package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.js +95 -0
  161. package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.js.map +1 -0
  162. package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.d.ts +17 -0
  163. package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.js +98 -0
  164. package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.js.map +1 -0
  165. package/dist/layers/sequelize/model/Certificate/InstalledCertificate.d.ts +18 -0
  166. package/dist/layers/sequelize/model/Certificate/InstalledCertificate.js +108 -0
  167. package/dist/layers/sequelize/model/Certificate/InstalledCertificate.js.map +1 -0
  168. package/dist/layers/sequelize/model/Certificate/index.d.ts +11 -0
  169. package/dist/layers/sequelize/model/Certificate/index.js +17 -0
  170. package/dist/layers/sequelize/model/Certificate/index.js.map +1 -0
  171. package/dist/layers/sequelize/model/ChangeConfiguration.d.ts +13 -0
  172. package/dist/layers/sequelize/model/ChangeConfiguration.js +80 -0
  173. package/dist/layers/sequelize/model/ChangeConfiguration.js.map +1 -0
  174. package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.d.ts +27 -0
  175. package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.js +99 -0
  176. package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.js.map +1 -0
  177. package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.d.ts +31 -0
  178. package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.js +141 -0
  179. package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.js.map +1 -0
  180. package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.d.ts +28 -0
  181. package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.js +118 -0
  182. package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.js.map +1 -0
  183. package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.d.ts +16 -0
  184. package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.js +86 -0
  185. package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.js.map +1 -0
  186. package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.d.ts +24 -0
  187. package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.js +91 -0
  188. package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.js.map +1 -0
  189. package/dist/layers/sequelize/model/ChargingProfile/index.d.ts +5 -0
  190. package/dist/layers/sequelize/model/ChargingProfile/index.js +9 -0
  191. package/dist/layers/sequelize/model/ChargingProfile/index.js.map +1 -0
  192. package/dist/layers/sequelize/model/ChargingStationSecurityInfo.d.ts +14 -0
  193. package/dist/layers/sequelize/model/ChargingStationSecurityInfo.js +76 -0
  194. package/dist/layers/sequelize/model/ChargingStationSecurityInfo.js.map +1 -0
  195. package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.d.ts +14 -0
  196. package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.js +85 -0
  197. package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.js.map +1 -0
  198. package/dist/layers/sequelize/model/ChargingStationSequence/index.d.ts +1 -0
  199. package/dist/layers/sequelize/model/ChargingStationSequence/index.js +5 -0
  200. package/dist/layers/sequelize/model/ChargingStationSequence/index.js.map +1 -0
  201. package/dist/layers/sequelize/model/DeviceModel/Component.d.ts +26 -0
  202. package/dist/layers/sequelize/model/DeviceModel/Component.js +99 -0
  203. package/dist/layers/sequelize/model/DeviceModel/Component.js.map +1 -0
  204. package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.d.ts +11 -0
  205. package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.js +69 -0
  206. package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.js.map +1 -0
  207. package/dist/layers/sequelize/model/DeviceModel/EvseType.d.ts +17 -0
  208. package/dist/layers/sequelize/model/DeviceModel/EvseType.js +83 -0
  209. package/dist/layers/sequelize/model/DeviceModel/EvseType.js.map +1 -0
  210. package/dist/layers/sequelize/model/DeviceModel/Variable.d.ts +27 -0
  211. package/dist/layers/sequelize/model/DeviceModel/Variable.js +96 -0
  212. package/dist/layers/sequelize/model/DeviceModel/Variable.js.map +1 -0
  213. package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.d.ts +38 -0
  214. package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.js +242 -0
  215. package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.js.map +1 -0
  216. package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.d.ts +25 -0
  217. package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.js +90 -0
  218. package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.js.map +1 -0
  219. package/dist/layers/sequelize/model/DeviceModel/VariableStatus.d.ts +19 -0
  220. package/dist/layers/sequelize/model/DeviceModel/VariableStatus.js +75 -0
  221. package/dist/layers/sequelize/model/DeviceModel/VariableStatus.js.map +1 -0
  222. package/dist/layers/sequelize/model/DeviceModel/index.d.ts +6 -0
  223. package/dist/layers/sequelize/model/DeviceModel/index.js +10 -0
  224. package/dist/layers/sequelize/model/DeviceModel/index.js.map +1 -0
  225. package/dist/layers/sequelize/model/Location/ChargingStation.d.ts +56 -0
  226. package/dist/layers/sequelize/model/Location/ChargingStation.js +178 -0
  227. package/dist/layers/sequelize/model/Location/ChargingStation.js.map +1 -0
  228. package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.d.ts +27 -0
  229. package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.js +93 -0
  230. package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.js.map +1 -0
  231. package/dist/layers/sequelize/model/Location/Connector.d.ts +32 -0
  232. package/dist/layers/sequelize/model/Location/Connector.js +166 -0
  233. package/dist/layers/sequelize/model/Location/Connector.js.map +1 -0
  234. package/dist/layers/sequelize/model/Location/Evse.d.ts +28 -0
  235. package/dist/layers/sequelize/model/Location/Evse.js +122 -0
  236. package/dist/layers/sequelize/model/Location/Evse.js.map +1 -0
  237. package/dist/layers/sequelize/model/Location/LatestStatusNotification.d.ts +16 -0
  238. package/dist/layers/sequelize/model/Location/LatestStatusNotification.js +74 -0
  239. package/dist/layers/sequelize/model/Location/LatestStatusNotification.js.map +1 -0
  240. package/dist/layers/sequelize/model/Location/Location.d.ts +44 -0
  241. package/dist/layers/sequelize/model/Location/Location.js +182 -0
  242. package/dist/layers/sequelize/model/Location/Location.js.map +1 -0
  243. package/dist/layers/sequelize/model/Location/ServerNetworkProfile.d.ts +26 -0
  244. package/dist/layers/sequelize/model/Location/ServerNetworkProfile.js +120 -0
  245. package/dist/layers/sequelize/model/Location/ServerNetworkProfile.js.map +1 -0
  246. package/dist/layers/sequelize/model/Location/SetNetworkProfile.d.ts +52 -0
  247. package/dist/layers/sequelize/model/Location/SetNetworkProfile.js +120 -0
  248. package/dist/layers/sequelize/model/Location/SetNetworkProfile.js.map +1 -0
  249. package/dist/layers/sequelize/model/Location/StatusNotification.d.ts +20 -0
  250. package/dist/layers/sequelize/model/Location/StatusNotification.js +100 -0
  251. package/dist/layers/sequelize/model/Location/StatusNotification.js.map +1 -0
  252. package/dist/layers/sequelize/model/Location/index.d.ts +9 -0
  253. package/dist/layers/sequelize/model/Location/index.js +13 -0
  254. package/dist/layers/sequelize/model/Location/index.js.map +1 -0
  255. package/dist/layers/sequelize/model/MessageInfo/MessageInfo.d.ts +29 -0
  256. package/dist/layers/sequelize/model/MessageInfo/MessageInfo.js +126 -0
  257. package/dist/layers/sequelize/model/MessageInfo/MessageInfo.js.map +1 -0
  258. package/dist/layers/sequelize/model/MessageInfo/index.d.ts +1 -0
  259. package/dist/layers/sequelize/model/MessageInfo/index.js +5 -0
  260. package/dist/layers/sequelize/model/MessageInfo/index.js.map +1 -0
  261. package/dist/layers/sequelize/model/OCPPMessage.d.ts +21 -0
  262. package/dist/layers/sequelize/model/OCPPMessage.js +110 -0
  263. package/dist/layers/sequelize/model/OCPPMessage.js.map +1 -0
  264. package/dist/layers/sequelize/model/Reservation.d.ts +29 -0
  265. package/dist/layers/sequelize/model/Reservation.js +116 -0
  266. package/dist/layers/sequelize/model/Reservation.js.map +1 -0
  267. package/dist/layers/sequelize/model/SecurityEvent.d.ts +18 -0
  268. package/dist/layers/sequelize/model/SecurityEvent.js +78 -0
  269. package/dist/layers/sequelize/model/SecurityEvent.js.map +1 -0
  270. package/dist/layers/sequelize/model/Subscription/Subscription.d.ts +16 -0
  271. package/dist/layers/sequelize/model/Subscription/Subscription.js +94 -0
  272. package/dist/layers/sequelize/model/Subscription/Subscription.js.map +1 -0
  273. package/dist/layers/sequelize/model/Subscription/index.d.ts +1 -0
  274. package/dist/layers/sequelize/model/Subscription/index.js +5 -0
  275. package/dist/layers/sequelize/model/Subscription/index.js.map +1 -0
  276. package/dist/layers/sequelize/model/Tariff/TariffElements.d.ts +12 -0
  277. package/dist/layers/sequelize/model/Tariff/TariffElements.js +57 -0
  278. package/dist/layers/sequelize/model/Tariff/TariffElements.js.map +1 -0
  279. package/dist/layers/sequelize/model/Tariff/Tariffs.d.ts +37 -0
  280. package/dist/layers/sequelize/model/Tariff/Tariffs.js +181 -0
  281. package/dist/layers/sequelize/model/Tariff/Tariffs.js.map +1 -0
  282. package/dist/layers/sequelize/model/Tariff/index.d.ts +1 -0
  283. package/dist/layers/sequelize/model/Tariff/index.js +5 -0
  284. package/dist/layers/sequelize/model/Tariff/index.js.map +1 -0
  285. package/dist/layers/sequelize/model/Tenant.d.ts +96 -0
  286. package/dist/layers/sequelize/model/Tenant.js +268 -0
  287. package/dist/layers/sequelize/model/Tenant.js.map +1 -0
  288. package/dist/layers/sequelize/model/TenantPartner.d.ts +14 -0
  289. package/dist/layers/sequelize/model/TenantPartner.js +70 -0
  290. package/dist/layers/sequelize/model/TenantPartner.js.map +1 -0
  291. package/dist/layers/sequelize/model/TransactionEvent/MeterValue.d.ts +18 -0
  292. package/dist/layers/sequelize/model/TransactionEvent/MeterValue.js +98 -0
  293. package/dist/layers/sequelize/model/TransactionEvent/MeterValue.js.map +1 -0
  294. package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.d.ts +19 -0
  295. package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.js +96 -0
  296. package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.js.map +1 -0
  297. package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.d.ts +20 -0
  298. package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.js +100 -0
  299. package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.js.map +1 -0
  300. package/dist/layers/sequelize/model/TransactionEvent/Transaction.d.ts +48 -0
  301. package/dist/layers/sequelize/model/TransactionEvent/Transaction.js +216 -0
  302. package/dist/layers/sequelize/model/TransactionEvent/Transaction.js.map +1 -0
  303. package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.d.ts +30 -0
  304. package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.js +129 -0
  305. package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.js.map +1 -0
  306. package/dist/layers/sequelize/model/TransactionEvent/index.d.ts +5 -0
  307. package/dist/layers/sequelize/model/TransactionEvent/index.js +9 -0
  308. package/dist/layers/sequelize/model/TransactionEvent/index.js.map +1 -0
  309. package/dist/layers/sequelize/model/VariableMonitoring/EventData.d.ts +33 -0
  310. package/dist/layers/sequelize/model/VariableMonitoring/EventData.js +137 -0
  311. package/dist/layers/sequelize/model/VariableMonitoring/EventData.js.map +1 -0
  312. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.d.ts +28 -0
  313. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.js +113 -0
  314. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.js.map +1 -0
  315. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.d.ts +18 -0
  316. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.js +71 -0
  317. package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.js.map +1 -0
  318. package/dist/layers/sequelize/model/VariableMonitoring/index.d.ts +3 -0
  319. package/dist/layers/sequelize/model/VariableMonitoring/index.js +7 -0
  320. package/dist/layers/sequelize/model/VariableMonitoring/index.js.map +1 -0
  321. package/dist/layers/sequelize/model/index.d.ts +22 -0
  322. package/dist/layers/sequelize/model/index.js +27 -0
  323. package/dist/layers/sequelize/model/index.js.map +1 -0
  324. package/dist/layers/sequelize/repository/AsyncJobStatus.d.ts +24 -0
  325. package/dist/layers/sequelize/repository/AsyncJobStatus.js +39 -0
  326. package/dist/layers/sequelize/repository/AsyncJobStatus.js.map +1 -0
  327. package/dist/layers/sequelize/repository/Authorization.d.ts +18 -0
  328. package/dist/layers/sequelize/repository/Authorization.js +51 -0
  329. package/dist/layers/sequelize/repository/Authorization.js.map +1 -0
  330. package/dist/layers/sequelize/repository/Base.d.ts +28 -0
  331. package/dist/layers/sequelize/repository/Base.js +135 -0
  332. package/dist/layers/sequelize/repository/Base.js.map +1 -0
  333. package/dist/layers/sequelize/repository/BaseJunction.d.ts +33 -0
  334. package/dist/layers/sequelize/repository/BaseJunction.js +178 -0
  335. package/dist/layers/sequelize/repository/BaseJunction.js.map +1 -0
  336. package/dist/layers/sequelize/repository/Boot.d.ts +20 -0
  337. package/dist/layers/sequelize/repository/Boot.js +78 -0
  338. package/dist/layers/sequelize/repository/Boot.js.map +1 -0
  339. package/dist/layers/sequelize/repository/Certificate.d.ts +11 -0
  340. package/dist/layers/sequelize/repository/Certificate.js +39 -0
  341. package/dist/layers/sequelize/repository/Certificate.js.map +1 -0
  342. package/dist/layers/sequelize/repository/ChangeConfiguration.d.ts +10 -0
  343. package/dist/layers/sequelize/repository/ChangeConfiguration.js +36 -0
  344. package/dist/layers/sequelize/repository/ChangeConfiguration.js.map +1 -0
  345. package/dist/layers/sequelize/repository/ChargingProfile.d.ts +25 -0
  346. package/dist/layers/sequelize/repository/ChargingProfile.js +156 -0
  347. package/dist/layers/sequelize/repository/ChargingProfile.js.map +1 -0
  348. package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.d.ts +12 -0
  349. package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.js +28 -0
  350. package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.js.map +1 -0
  351. package/dist/layers/sequelize/repository/ChargingStationSequence.d.ts +21 -0
  352. package/dist/layers/sequelize/repository/ChargingStationSequence.js +52 -0
  353. package/dist/layers/sequelize/repository/ChargingStationSequence.js.map +1 -0
  354. package/dist/layers/sequelize/repository/DeleteCertificateAttempt.d.ts +10 -0
  355. package/dist/layers/sequelize/repository/DeleteCertificateAttempt.js +13 -0
  356. package/dist/layers/sequelize/repository/DeleteCertificateAttempt.js.map +1 -0
  357. package/dist/layers/sequelize/repository/DeviceModel.d.ts +36 -0
  358. package/dist/layers/sequelize/repository/DeviceModel.js +417 -0
  359. package/dist/layers/sequelize/repository/DeviceModel.js.map +1 -0
  360. package/dist/layers/sequelize/repository/InstallCertificateAttempt.d.ts +10 -0
  361. package/dist/layers/sequelize/repository/InstallCertificateAttempt.js +13 -0
  362. package/dist/layers/sequelize/repository/InstallCertificateAttempt.js.map +1 -0
  363. package/dist/layers/sequelize/repository/InstalledCertificate.d.ts +10 -0
  364. package/dist/layers/sequelize/repository/InstalledCertificate.js +13 -0
  365. package/dist/layers/sequelize/repository/InstalledCertificate.js.map +1 -0
  366. package/dist/layers/sequelize/repository/LocalAuthList.d.ts +20 -0
  367. package/dist/layers/sequelize/repository/LocalAuthList.js +192 -0
  368. package/dist/layers/sequelize/repository/LocalAuthList.js.map +1 -0
  369. package/dist/layers/sequelize/repository/Location.d.ts +30 -0
  370. package/dist/layers/sequelize/repository/Location.js +263 -0
  371. package/dist/layers/sequelize/repository/Location.js.map +1 -0
  372. package/dist/layers/sequelize/repository/MessageInfo.d.ts +13 -0
  373. package/dist/layers/sequelize/repository/MessageInfo.js +55 -0
  374. package/dist/layers/sequelize/repository/MessageInfo.js.map +1 -0
  375. package/dist/layers/sequelize/repository/OCPPMessage.d.ts +12 -0
  376. package/dist/layers/sequelize/repository/OCPPMessage.js +65 -0
  377. package/dist/layers/sequelize/repository/OCPPMessage.js.map +1 -0
  378. package/dist/layers/sequelize/repository/RepositoryStore.d.ts +34 -0
  379. package/dist/layers/sequelize/repository/RepositoryStore.js +79 -0
  380. package/dist/layers/sequelize/repository/RepositoryStore.js.map +1 -0
  381. package/dist/layers/sequelize/repository/Reservation.d.ts +15 -0
  382. package/dist/layers/sequelize/repository/Reservation.js +68 -0
  383. package/dist/layers/sequelize/repository/Reservation.js.map +1 -0
  384. package/dist/layers/sequelize/repository/SecurityEvent.d.ts +18 -0
  385. package/dist/layers/sequelize/repository/SecurityEvent.js +46 -0
  386. package/dist/layers/sequelize/repository/SecurityEvent.js.map +1 -0
  387. package/dist/layers/sequelize/repository/ServerNetworkProfile.d.ts +14 -0
  388. package/dist/layers/sequelize/repository/ServerNetworkProfile.js +40 -0
  389. package/dist/layers/sequelize/repository/ServerNetworkProfile.js.map +1 -0
  390. package/dist/layers/sequelize/repository/Subscription.d.ts +20 -0
  391. package/dist/layers/sequelize/repository/Subscription.js +32 -0
  392. package/dist/layers/sequelize/repository/Subscription.js.map +1 -0
  393. package/dist/layers/sequelize/repository/Tariff.d.ts +15 -0
  394. package/dist/layers/sequelize/repository/Tariff.js +64 -0
  395. package/dist/layers/sequelize/repository/Tariff.js.map +1 -0
  396. package/dist/layers/sequelize/repository/Tenant.d.ts +11 -0
  397. package/dist/layers/sequelize/repository/Tenant.js +21 -0
  398. package/dist/layers/sequelize/repository/Tenant.js.map +1 -0
  399. package/dist/layers/sequelize/repository/TransactionEvent.d.ts +46 -0
  400. package/dist/layers/sequelize/repository/TransactionEvent.js +597 -0
  401. package/dist/layers/sequelize/repository/TransactionEvent.js.map +1 -0
  402. package/dist/layers/sequelize/repository/VariableMonitoring.d.ts +20 -0
  403. package/dist/layers/sequelize/repository/VariableMonitoring.js +168 -0
  404. package/dist/layers/sequelize/repository/VariableMonitoring.js.map +1 -0
  405. package/dist/layers/sequelize/util.d.ts +18 -0
  406. package/dist/layers/sequelize/util.js +143 -0
  407. package/dist/layers/sequelize/util.js.map +1 -0
  408. package/dist/util/CryptoUtils.d.ts +6 -0
  409. package/dist/util/CryptoUtils.js +14 -0
  410. package/dist/util/CryptoUtils.js.map +1 -0
  411. package/dist/util/PasswordHashAlgorithm.d.ts +15 -0
  412. package/dist/util/PasswordHashAlgorithm.js +2 -0
  413. package/dist/util/PasswordHashAlgorithm.js.map +1 -0
  414. package/dist/util/Pbkdf2.d.ts +9 -0
  415. package/dist/util/Pbkdf2.js +20 -0
  416. package/dist/util/Pbkdf2.js.map +1 -0
  417. package/package.json +36 -0
@@ -0,0 +1,65 @@
1
+ // SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ import { MessageState } from '@citrineos/base';
5
+ import { Sequelize } from 'sequelize-typescript';
6
+ import { Logger } from 'tslog';
7
+ import { OCPPMessage } from '../model/index.js';
8
+ import { SequelizeRepository } from './Base.js';
9
+ export class SequelizeOCPPMessageRepository extends SequelizeRepository {
10
+ constructor(config, logger, sequelizeInstance) {
11
+ super(config, OCPPMessage.MODEL_NAME, logger, sequelizeInstance);
12
+ }
13
+ async createOCPPMessage(tenantId, message) {
14
+ if (message.correlationId) {
15
+ const correlatedMessages = await this.readAllByQuery(tenantId, {
16
+ where: {
17
+ tenantId,
18
+ correlationId: message.correlationId,
19
+ requestMessageId: null,
20
+ },
21
+ });
22
+ if (correlatedMessages.length > 0) {
23
+ if (correlatedMessages.length > 1) {
24
+ this.logger.warn(`Multiple correlated messages found for correlationId ${message.correlationId} and tenantId ${tenantId}. This should not happen.`);
25
+ }
26
+ const correlatedMessage = correlatedMessages.sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime())[0]; // Get the oldest message
27
+ // Update the action of the correlated message if it's missing and we have it in the incoming message, or vice versa
28
+ if (correlatedMessage.action === undefined && message.action) {
29
+ correlatedMessage.action = message.action;
30
+ await correlatedMessage.save();
31
+ }
32
+ else if (message.action === undefined && correlatedMessage.action) {
33
+ message.action = correlatedMessage.action;
34
+ }
35
+ if (message.state === MessageState.Request) {
36
+ this.logger.debug(`Saving request message found for correlationId ${message.correlationId} and tenantId ${tenantId}, will update response`);
37
+ const createdMessage = await this.create(tenantId, OCPPMessage.build({ ...message }));
38
+ correlatedMessage.requestMessageId = createdMessage.id;
39
+ await correlatedMessage.save();
40
+ return createdMessage;
41
+ }
42
+ else {
43
+ this.logger.debug(`Saving response message found for correlationId ${message.correlationId} and tenantId ${tenantId} with action ${correlatedMessage.action}`);
44
+ message.requestMessageId = correlatedMessage.id;
45
+ return this.create(tenantId, OCPPMessage.build({ ...message }));
46
+ }
47
+ }
48
+ else {
49
+ // No correlated message found, ideally because this is the request message arriving before the response
50
+ this.logger.debug(`No correlated message found for correlationId ${message.correlationId} and tenantId ${tenantId} with action ${message.action}. Saving message as-is.`);
51
+ return this.create(tenantId, OCPPMessage.build({ ...message }));
52
+ }
53
+ }
54
+ else {
55
+ this.logger.warn(`No correlationId found for message with tenantId ${tenantId} and action ${message.action}. Saving message as-is without correlation.`);
56
+ return this.create(tenantId, OCPPMessage.build({ ...message }));
57
+ }
58
+ }
59
+ async getRequestByCorrelationId(tenantId, correlationId) {
60
+ return this.readOnlyOneByQuery(tenantId, {
61
+ where: { tenantId, correlationId, requestMessageId: null },
62
+ });
63
+ }
64
+ }
65
+ //# sourceMappingURL=OCPPMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OCPPMessage.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/OCPPMessage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { IAuthorizationRepository, IBootRepository, ICertificateRepository, IChangeConfigurationRepository, IChargingProfileRepository, IChargingStationSequenceRepository, IDeleteCertificateAttemptRepository, IDeviceModelRepository, IInstallCertificateAttemptRepository, IInstalledCertificateRepository, ILocalAuthListRepository, ILocationRepository, IMessageInfoRepository, IOCPPMessageRepository, IReservationRepository, ISecurityEventRepository, IServerNetworkProfileRepository, ISubscriptionRepository, ITariffRepository, ITenantRepository, ITransactionEventRepository, IVariableMonitoringRepository } from '../../../interfaces/index.js';
2
+ import type { BootstrapConfig } from '@citrineos/base';
3
+ import { CrudRepository } from '@citrineos/base';
4
+ import type { ILogObj } from 'tslog';
5
+ import { Logger } from 'tslog';
6
+ import { Sequelize } from 'sequelize-typescript';
7
+ import { Component } from '../model/index.js';
8
+ export declare class RepositoryStore {
9
+ sequelizeInstance: Sequelize;
10
+ authorizationRepository: IAuthorizationRepository;
11
+ bootRepository: IBootRepository;
12
+ certificateRepository: ICertificateRepository;
13
+ installedCertificateRepository: IInstalledCertificateRepository;
14
+ installCertificateAttemptRepository: IInstallCertificateAttemptRepository;
15
+ deleteCertificateAttemptRepository: IDeleteCertificateAttemptRepository;
16
+ changeConfigurationRepository: IChangeConfigurationRepository;
17
+ chargingProfileRepository: IChargingProfileRepository;
18
+ chargingStationSequenceRepository: IChargingStationSequenceRepository;
19
+ componentRepository: CrudRepository<Component>;
20
+ deviceModelRepository: IDeviceModelRepository;
21
+ localAuthListRepository: ILocalAuthListRepository;
22
+ locationRepository: ILocationRepository;
23
+ messageInfoRepository: IMessageInfoRepository;
24
+ ocppMessageRepository: IOCPPMessageRepository;
25
+ reservationRepository: IReservationRepository;
26
+ securityEventRepository: ISecurityEventRepository;
27
+ subscriptionRepository: ISubscriptionRepository;
28
+ tariffRepository: ITariffRepository;
29
+ transactionEventRepository: ITransactionEventRepository;
30
+ variableMonitoringRepository: IVariableMonitoringRepository;
31
+ tenantRepository: ITenantRepository;
32
+ serverNetworkProfileRepository: IServerNetworkProfileRepository;
33
+ constructor(config: BootstrapConfig, logger: Logger<ILogObj>, sequelizeInstance: Sequelize);
34
+ }
@@ -0,0 +1,79 @@
1
+ import { CrudRepository } from '@citrineos/base';
2
+ import { Logger } from 'tslog';
3
+ import { SequelizeAuthorizationRepository } from './Authorization.js';
4
+ import { SequelizeBootRepository } from './Boot.js';
5
+ import { SequelizeCertificateRepository } from './Certificate.js';
6
+ import { SequelizeDeviceModelRepository } from './DeviceModel.js';
7
+ import { SequelizeLocationRepository } from './Location.js';
8
+ import { SequelizeMessageInfoRepository } from './MessageInfo.js';
9
+ import { SequelizeSecurityEventRepository } from './SecurityEvent.js';
10
+ import { SequelizeSubscriptionRepository } from './Subscription.js';
11
+ import { SequelizeTariffRepository } from './Tariff.js';
12
+ import { SequelizeTransactionEventRepository } from './TransactionEvent.js';
13
+ import { SequelizeVariableMonitoringRepository } from './VariableMonitoring.js';
14
+ import { Sequelize } from 'sequelize-typescript';
15
+ import { Component, TransactionEvent } from '../model/index.js';
16
+ import { SequelizeRepository } from './Base.js';
17
+ import { SequelizeReservationRepository } from './Reservation.js';
18
+ import { SequelizeLocalAuthListRepository } from './LocalAuthList.js';
19
+ import { SequelizeChargingStationSequenceRepository } from './ChargingStationSequence.js';
20
+ import { SequelizeChargingProfileRepository } from './ChargingProfile.js';
21
+ import { SequelizeChangeConfigurationRepository } from './ChangeConfiguration.js';
22
+ import { SequelizeOCPPMessageRepository, SequelizeTenantRepository } from '../index.js';
23
+ import { SequelizeServerNetworkProfileRepository } from './ServerNetworkProfile.js';
24
+ import { SequelizeInstalledCertificateRepository } from './InstalledCertificate.js';
25
+ import { SequelizeInstallCertificateAttemptRepository } from './InstallCertificateAttempt.js';
26
+ import { SequelizeDeleteCertificateAttemptRepository } from './DeleteCertificateAttempt.js';
27
+ export class RepositoryStore {
28
+ sequelizeInstance;
29
+ authorizationRepository;
30
+ bootRepository;
31
+ certificateRepository;
32
+ installedCertificateRepository;
33
+ installCertificateAttemptRepository;
34
+ deleteCertificateAttemptRepository;
35
+ changeConfigurationRepository;
36
+ chargingProfileRepository;
37
+ chargingStationSequenceRepository;
38
+ componentRepository;
39
+ deviceModelRepository;
40
+ localAuthListRepository;
41
+ locationRepository;
42
+ messageInfoRepository;
43
+ ocppMessageRepository;
44
+ reservationRepository;
45
+ securityEventRepository;
46
+ subscriptionRepository;
47
+ tariffRepository;
48
+ transactionEventRepository;
49
+ variableMonitoringRepository;
50
+ tenantRepository;
51
+ serverNetworkProfileRepository;
52
+ constructor(config, logger, sequelizeInstance) {
53
+ this.sequelizeInstance = sequelizeInstance;
54
+ this.authorizationRepository = new SequelizeAuthorizationRepository(config, logger, sequelizeInstance);
55
+ this.bootRepository = new SequelizeBootRepository(config, logger, sequelizeInstance);
56
+ this.certificateRepository = new SequelizeCertificateRepository(config, logger, sequelizeInstance);
57
+ this.installedCertificateRepository = new SequelizeInstalledCertificateRepository(config, logger, sequelizeInstance);
58
+ this.installCertificateAttemptRepository = new SequelizeInstallCertificateAttemptRepository(config, logger, sequelizeInstance);
59
+ this.deleteCertificateAttemptRepository = new SequelizeDeleteCertificateAttemptRepository(config, logger, sequelizeInstance);
60
+ this.changeConfigurationRepository = new SequelizeChangeConfigurationRepository(config, logger, sequelizeInstance);
61
+ this.chargingProfileRepository = new SequelizeChargingProfileRepository(config, logger, sequelizeInstance);
62
+ this.chargingStationSequenceRepository = new SequelizeChargingStationSequenceRepository(config, logger, sequelizeInstance);
63
+ this.componentRepository = new SequelizeRepository(config, Component.MODEL_NAME, logger);
64
+ this.deviceModelRepository = new SequelizeDeviceModelRepository(config, logger, sequelizeInstance);
65
+ this.localAuthListRepository = new SequelizeLocalAuthListRepository(config, logger, sequelizeInstance);
66
+ this.locationRepository = new SequelizeLocationRepository(config, logger, sequelizeInstance);
67
+ this.messageInfoRepository = new SequelizeMessageInfoRepository(config, logger, sequelizeInstance);
68
+ this.ocppMessageRepository = new SequelizeOCPPMessageRepository(config, logger, sequelizeInstance);
69
+ this.reservationRepository = new SequelizeReservationRepository(config, logger, sequelizeInstance);
70
+ this.securityEventRepository = new SequelizeSecurityEventRepository(config, logger, sequelizeInstance);
71
+ this.subscriptionRepository = new SequelizeSubscriptionRepository(config, logger, sequelizeInstance);
72
+ this.tariffRepository = new SequelizeTariffRepository(config, logger, sequelizeInstance);
73
+ this.transactionEventRepository = new SequelizeTransactionEventRepository(config, logger, TransactionEvent.MODEL_NAME, sequelizeInstance);
74
+ this.variableMonitoringRepository = new SequelizeVariableMonitoringRepository(config, logger, sequelizeInstance);
75
+ this.tenantRepository = new SequelizeTenantRepository(config, logger, sequelizeInstance);
76
+ this.serverNetworkProfileRepository = new SequelizeServerNetworkProfileRepository(config, logger, sequelizeInstance);
77
+ }
78
+ }
79
+ //# sourceMappingURL=RepositoryStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RepositoryStore.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/RepositoryStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { BootstrapConfig } from '@citrineos/base';
2
+ import { CrudRepository, OCPP2_0_1 } from '@citrineos/base';
3
+ import type { IReservationRepository } from '../../../interfaces/index.js';
4
+ import { SequelizeRepository } from './Base.js';
5
+ import { Sequelize } from 'sequelize-typescript';
6
+ import type { ILogObj } from 'tslog';
7
+ import { Logger } from 'tslog';
8
+ import { EvseType, Reservation } from '../model/index.js';
9
+ export declare class SequelizeReservationRepository extends SequelizeRepository<Reservation> implements IReservationRepository {
10
+ evse: CrudRepository<EvseType>;
11
+ logger: Logger<ILogObj>;
12
+ constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize, evse?: CrudRepository<EvseType>);
13
+ createOrUpdateReservation(tenantId: number, reserveNowRequest: OCPP2_0_1.ReserveNowRequest, stationId: string, isActive?: boolean): Promise<Reservation | undefined>;
14
+ getNextReservationId(tenantId: number, stationId: string): Promise<number>;
15
+ }
@@ -0,0 +1,68 @@
1
+ import { CrudRepository, OCPP2_0_1 } from '@citrineos/base';
2
+ import { SequelizeRepository } from './Base.js';
3
+ import { Sequelize } from 'sequelize-typescript';
4
+ import { Logger } from 'tslog';
5
+ import { EvseType, Reservation } from '../model/index.js';
6
+ export class SequelizeReservationRepository extends SequelizeRepository {
7
+ evse;
8
+ logger;
9
+ constructor(config, logger, sequelizeInstance, evse) {
10
+ super(config, Reservation.MODEL_NAME, logger, sequelizeInstance);
11
+ this.evse = evse
12
+ ? evse
13
+ : new SequelizeRepository(config, EvseType.MODEL_NAME, logger, sequelizeInstance);
14
+ this.logger = logger
15
+ ? logger.getSubLogger({ name: this.constructor.name })
16
+ : new Logger({ name: this.constructor.name });
17
+ }
18
+ async createOrUpdateReservation(tenantId, reserveNowRequest, stationId, isActive) {
19
+ let evseDBId = null;
20
+ if (reserveNowRequest.evseId) {
21
+ const [evse] = await this.evse.readAllByQuery(tenantId, {
22
+ where: {
23
+ id: reserveNowRequest.evseId,
24
+ connectorId: null,
25
+ },
26
+ });
27
+ if (!evse) {
28
+ this.logger.error(`Could not find evse with id ${reserveNowRequest.evseId}`);
29
+ return undefined;
30
+ }
31
+ else {
32
+ evseDBId = evse.databaseId;
33
+ }
34
+ }
35
+ const [storedReservation, created] = await this.readOrCreateByQuery(tenantId, {
36
+ where: {
37
+ tenantId,
38
+ // unique constraints
39
+ stationId,
40
+ id: reserveNowRequest.id,
41
+ },
42
+ defaults: {
43
+ expiryDateTime: reserveNowRequest.expiryDateTime,
44
+ connectorType: reserveNowRequest.connectorType,
45
+ evseId: evseDBId,
46
+ idToken: reserveNowRequest.idToken,
47
+ groupIdToken: reserveNowRequest.groupIdToken ? reserveNowRequest.groupIdToken : null,
48
+ },
49
+ });
50
+ if (!created) {
51
+ return await this.updateByKey(tenantId, {
52
+ expiryDateTime: reserveNowRequest.expiryDateTime,
53
+ connectorType: reserveNowRequest.connectorType ?? null,
54
+ evseId: evseDBId,
55
+ idToken: reserveNowRequest.idToken,
56
+ groupIdToken: reserveNowRequest.groupIdToken ?? null,
57
+ isActive,
58
+ }, storedReservation.databaseId.toString());
59
+ }
60
+ else {
61
+ return storedReservation;
62
+ }
63
+ }
64
+ async getNextReservationId(tenantId, stationId) {
65
+ return await this.readNextValue(tenantId, 'id', { where: { stationId } });
66
+ }
67
+ }
68
+ //# sourceMappingURL=Reservation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Reservation.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/Reservation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { BootstrapConfig } from '@citrineos/base';
2
+ import { OCPP2_0_1 } from '@citrineos/base';
3
+ import { SecurityEvent } from '../model/index.js';
4
+ import { SequelizeRepository } from './Base.js';
5
+ import type { ISecurityEventRepository } from '../../../interfaces/index.js';
6
+ import { Sequelize } from 'sequelize-typescript';
7
+ import type { ILogObj } from 'tslog';
8
+ import { Logger } from 'tslog';
9
+ export declare class SequelizeSecurityEventRepository extends SequelizeRepository<SecurityEvent> implements ISecurityEventRepository {
10
+ constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
11
+ createByStationId(tenantId: number, value: OCPP2_0_1.SecurityEventNotificationRequest, stationId: string): Promise<SecurityEvent>;
12
+ readByStationIdAndTimestamps(tenantId: number, stationId: string, from?: Date, to?: Date): Promise<SecurityEvent[]>;
13
+ deleteByKey(tenantId: number, key: string): Promise<SecurityEvent | undefined>;
14
+ /**
15
+ * Private Methods
16
+ */
17
+ private generateTimestampQuery;
18
+ }
@@ -0,0 +1,46 @@
1
+ import { OCPP2_0_1 } from '@citrineos/base';
2
+ import { SecurityEvent } from '../model/index.js';
3
+ import { SequelizeRepository } from './Base.js';
4
+ import { Op } from 'sequelize';
5
+ import { Sequelize } from 'sequelize-typescript';
6
+ import { Logger } from 'tslog';
7
+ export class SequelizeSecurityEventRepository extends SequelizeRepository {
8
+ constructor(config, logger, sequelizeInstance) {
9
+ super(config, SecurityEvent.MODEL_NAME, logger, sequelizeInstance);
10
+ }
11
+ async createByStationId(tenantId, value, stationId) {
12
+ return await this.create(tenantId, SecurityEvent.build({
13
+ tenantId,
14
+ stationId,
15
+ ...value,
16
+ }));
17
+ }
18
+ async readByStationIdAndTimestamps(tenantId, stationId, from, to) {
19
+ const timestampQuery = this.generateTimestampQuery(from?.toISOString(), to?.toISOString());
20
+ return await this.readAllByQuery(tenantId, {
21
+ where: {
22
+ stationId,
23
+ ...timestampQuery,
24
+ },
25
+ }).then((row) => row);
26
+ }
27
+ async deleteByKey(tenantId, key) {
28
+ return await super.deleteByKey(tenantId, key);
29
+ }
30
+ /**
31
+ * Private Methods
32
+ */
33
+ generateTimestampQuery(from, to) {
34
+ if (!from && !to) {
35
+ return {};
36
+ }
37
+ if (!from && to) {
38
+ return { timestamp: { [Op.lte]: to } };
39
+ }
40
+ if (from && !to) {
41
+ return { timestamp: { [Op.gte]: from } };
42
+ }
43
+ return { timestamp: { [Op.between]: [from, to] } };
44
+ }
45
+ }
46
+ //# sourceMappingURL=SecurityEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecurityEvent.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/SecurityEvent.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,OAAO,gCACX,SAAQ,mBAAkC;IAG1C,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,QAAgB,EAChB,KAAiD,EACjD,SAAiB;QAEjB,OAAO,MAAM,IAAI,CAAC,MAAM,CACtB,QAAQ,EACR,aAAa,CAAC,KAAK,CAAC;YAClB,QAAQ;YACR,SAAS;YACT,GAAG,KAAK;SACT,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,QAAgB,EAChB,SAAiB,EACjB,IAAW,EACX,EAAS;QAET,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3F,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YACzC,KAAK,EAAE;gBACL,SAAS;gBACT,GAAG,cAAc;aAClB;SACF,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAsB,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,GAAW;QAC7C,OAAO,MAAM,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,IAAa,EAAE,EAAW;QACvD,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IACrD,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { BootstrapConfig } from '@citrineos/base';
2
+ import { SequelizeRepository } from './Base.js';
3
+ import { Sequelize } from 'sequelize-typescript';
4
+ import type { ILogObj } from 'tslog';
5
+ import { Logger } from 'tslog';
6
+ import { ServerNetworkProfile } from '../model/index.js';
7
+ import type { IServerNetworkProfileRepository } from '../../../interfaces/index.js';
8
+ export declare class SequelizeServerNetworkProfileRepository extends SequelizeRepository<ServerNetworkProfile> implements IServerNetworkProfileRepository {
9
+ constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
10
+ /**
11
+ * Finds or creates a ServerNetworkProfile by id, updates its fields, saves, and returns the instance.
12
+ */
13
+ upsertServerNetworkProfile(websocketServerConfig: any, maxCallLengthSeconds: number): Promise<ServerNetworkProfile>;
14
+ }
@@ -0,0 +1,40 @@
1
+ // SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ import { SequelizeRepository } from './Base.js';
5
+ import { Sequelize } from 'sequelize-typescript';
6
+ import { Logger } from 'tslog';
7
+ import { ServerNetworkProfile } from '../model/index.js';
8
+ export class SequelizeServerNetworkProfileRepository extends SequelizeRepository {
9
+ constructor(config, logger, sequelizeInstance) {
10
+ super(config, ServerNetworkProfile.MODEL_NAME, logger, sequelizeInstance);
11
+ }
12
+ /**
13
+ * Finds or creates a ServerNetworkProfile by id, updates its fields, saves, and returns the instance.
14
+ */
15
+ async upsertServerNetworkProfile(websocketServerConfig, maxCallLengthSeconds) {
16
+ const [serverNetworkProfile] = await ServerNetworkProfile.findOrBuild({
17
+ where: { id: websocketServerConfig.id },
18
+ });
19
+ serverNetworkProfile.host = websocketServerConfig.host;
20
+ serverNetworkProfile.port = websocketServerConfig.port;
21
+ serverNetworkProfile.pingInterval = websocketServerConfig.pingInterval;
22
+ serverNetworkProfile.protocol = websocketServerConfig.protocol;
23
+ serverNetworkProfile.messageTimeout = maxCallLengthSeconds;
24
+ serverNetworkProfile.securityProfile = websocketServerConfig.securityProfile;
25
+ serverNetworkProfile.allowUnknownChargingStations =
26
+ websocketServerConfig.allowUnknownChargingStations;
27
+ serverNetworkProfile.tlsKeyFilePath = websocketServerConfig.tlsKeyFilePath;
28
+ serverNetworkProfile.tlsCertificateChainFilePath =
29
+ websocketServerConfig.tlsCertificateChainFilePath;
30
+ serverNetworkProfile.mtlsCertificateAuthorityKeyFilePath =
31
+ websocketServerConfig.mtlsCertificateAuthorityKeyFilePath;
32
+ serverNetworkProfile.rootCACertificateFilePath =
33
+ websocketServerConfig.rootCACertificateFilePath;
34
+ serverNetworkProfile.tenantId = websocketServerConfig.tenantId;
35
+ serverNetworkProfile.tenantPathMapping = websocketServerConfig.tenantPathMapping;
36
+ await serverNetworkProfile.save();
37
+ return serverNetworkProfile;
38
+ }
39
+ }
40
+ //# sourceMappingURL=ServerNetworkProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerNetworkProfile.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/ServerNetworkProfile.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AAGtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,MAAM,OAAO,uCACX,SAAQ,mBAAyC;IAGjD,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,0BAA0B,CAC9B,qBAA0B,EAC1B,oBAA4B;QAE5B,MAAM,CAAC,oBAAoB,CAAC,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC;YACpE,KAAK,EAAE,EAAE,EAAE,EAAE,qBAAqB,CAAC,EAAE,EAAE;SACxC,CAAC,CAAC;QACH,oBAAoB,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;QACvD,oBAAoB,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC;QACvD,oBAAoB,CAAC,YAAY,GAAG,qBAAqB,CAAC,YAAY,CAAC;QACvE,oBAAoB,CAAC,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC;QAC/D,oBAAoB,CAAC,cAAc,GAAG,oBAAoB,CAAC;QAC3D,oBAAoB,CAAC,eAAe,GAAG,qBAAqB,CAAC,eAAe,CAAC;QAC7E,oBAAoB,CAAC,4BAA4B;YAC/C,qBAAqB,CAAC,4BAA4B,CAAC;QACrD,oBAAoB,CAAC,cAAc,GAAG,qBAAqB,CAAC,cAAc,CAAC;QAC3E,oBAAoB,CAAC,2BAA2B;YAC9C,qBAAqB,CAAC,2BAA2B,CAAC;QACpD,oBAAoB,CAAC,mCAAmC;YACtD,qBAAqB,CAAC,mCAAmC,CAAC;QAC5D,oBAAoB,CAAC,yBAAyB;YAC5C,qBAAqB,CAAC,yBAAyB,CAAC;QAClD,oBAAoB,CAAC,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC;QAC/D,oBAAoB,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,iBAAiB,CAAC;QACjF,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { Sequelize } from 'sequelize-typescript';
2
+ import { SequelizeRepository, Subscription } from '../index.js';
3
+ import type { ISubscriptionRepository } from '../../../index.js';
4
+ import type { BootstrapConfig } from '@citrineos/base';
5
+ import type { ILogObj } from 'tslog';
6
+ import { Logger } from 'tslog';
7
+ export declare class SequelizeSubscriptionRepository extends SequelizeRepository<Subscription> implements ISubscriptionRepository {
8
+ constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
9
+ /**
10
+ * Creates a new {@link Subscription} in the database.
11
+ * Input is assumed to not have an id, and id will be removed if present.
12
+ * Object is rebuilt to ensure access to essential {@link Model} function {@link Model.save()} (Model is extended by Subscription).
13
+ *
14
+ * @param value {@link Subscription} object which may have been deserialized from JSON
15
+ * @returns Saved {@link Subscription} if successful, undefined otherwise
16
+ */
17
+ create(tenantId: number, value: Subscription): Promise<Subscription>;
18
+ readAllByStationId(tenantId: number, stationId: string): Promise<Subscription[]>;
19
+ deleteByKey(tenantId: number, key: string): Promise<Subscription | undefined>;
20
+ }
@@ -0,0 +1,32 @@
1
+ // SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ import { Sequelize } from 'sequelize-typescript';
5
+ import { SequelizeRepository, Subscription } from '../index.js';
6
+ import { Logger } from 'tslog';
7
+ export class SequelizeSubscriptionRepository extends SequelizeRepository {
8
+ constructor(config, logger, sequelizeInstance) {
9
+ super(config, Subscription.MODEL_NAME, logger, sequelizeInstance);
10
+ }
11
+ /**
12
+ * Creates a new {@link Subscription} in the database.
13
+ * Input is assumed to not have an id, and id will be removed if present.
14
+ * Object is rebuilt to ensure access to essential {@link Model} function {@link Model.save()} (Model is extended by Subscription).
15
+ *
16
+ * @param value {@link Subscription} object which may have been deserialized from JSON
17
+ * @returns Saved {@link Subscription} if successful, undefined otherwise
18
+ */
19
+ create(tenantId, value) {
20
+ const { ...rawSubscription } = value;
21
+ rawSubscription.tenantId = tenantId;
22
+ rawSubscription.id = null;
23
+ return super.create(tenantId, Subscription.build({ ...rawSubscription }));
24
+ }
25
+ readAllByStationId(tenantId, stationId) {
26
+ return super.readAllByQuery(tenantId, { where: { stationId: stationId } });
27
+ }
28
+ deleteByKey(tenantId, key) {
29
+ return super.deleteByKey(tenantId, key);
30
+ }
31
+ }
32
+ //# sourceMappingURL=Subscription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Subscription.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/Subscription.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,OAAO,+BACX,SAAQ,mBAAiC;IAGzC,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACpE,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,QAAgB,EAAE,KAAmB;QAC1C,MAAM,EAAE,GAAG,eAAe,EAAE,GAAG,KAAK,CAAC;QACrC,eAAe,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC;QAC1B,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,eAAe,EAAE,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,kBAAkB,CAAC,QAAgB,EAAE,SAAiB;QACpD,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,WAAW,CAAC,QAAgB,EAAE,GAAW;QACvC,OAAO,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import { SequelizeRepository } from './Base.js';
2
+ import type { ITariffRepository, TariffQueryString } from '../../../interfaces/index.js';
3
+ import { Tariff } from '../model/index.js';
4
+ import { Sequelize } from 'sequelize-typescript';
5
+ import type { BootstrapConfig } from '@citrineos/base';
6
+ import type { ILogObj } from 'tslog';
7
+ import { Logger } from 'tslog';
8
+ export declare class SequelizeTariffRepository extends SequelizeRepository<Tariff> implements ITariffRepository {
9
+ constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
10
+ findByStationIds(tenantId: number, stationIds: string[]): Promise<Tariff[] | undefined>;
11
+ findByStationId(tenantId: number, stationId: string): Promise<Tariff | undefined>;
12
+ upsertTariff(tenantId: number, tariff: Tariff): Promise<Tariff>;
13
+ readAllByQuerystring(tenantId: number, query: TariffQueryString): Promise<Tariff[]>;
14
+ deleteAllByQuerystring(tenantId: number, query: TariffQueryString): Promise<Tariff[]>;
15
+ }
@@ -0,0 +1,64 @@
1
+ // SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ import { SequelizeRepository } from './Base.js';
5
+ import { Tariff } from '../model/index.js';
6
+ import { Sequelize } from 'sequelize-typescript';
7
+ import { Logger } from 'tslog';
8
+ import { Op } from 'sequelize';
9
+ export class SequelizeTariffRepository extends SequelizeRepository {
10
+ constructor(config, logger, sequelizeInstance) {
11
+ super(config, Tariff.MODEL_NAME, logger, sequelizeInstance);
12
+ }
13
+ async findByStationIds(tenantId, stationIds) {
14
+ return super.readAllByQuery(tenantId, {
15
+ where: {
16
+ stationId: {
17
+ [Op.in]: stationIds,
18
+ },
19
+ },
20
+ });
21
+ }
22
+ async findByStationId(tenantId, stationId) {
23
+ return super.readOnlyOneByQuery(tenantId, {
24
+ where: {
25
+ stationId: stationId,
26
+ },
27
+ });
28
+ }
29
+ async upsertTariff(tenantId, tariff) {
30
+ tariff.tenantId = tenantId;
31
+ return await this.s.transaction(async (transaction) => {
32
+ const savedTariff = await this.readOnlyOneByQuery(tenantId, {
33
+ where: { id: tariff.id },
34
+ transaction,
35
+ });
36
+ if (savedTariff) {
37
+ const updatedTariff = await savedTariff.set(tariff.data).save({ transaction });
38
+ this.emit('updated', [updatedTariff]);
39
+ return updatedTariff;
40
+ }
41
+ const createdTariff = await tariff.save({ transaction });
42
+ this.emit('created', [createdTariff]);
43
+ return createdTariff;
44
+ });
45
+ }
46
+ async readAllByQuerystring(tenantId, query) {
47
+ return super.readAllByQuery(tenantId, {
48
+ where: {
49
+ ...(query.id && { id: query.id }),
50
+ },
51
+ });
52
+ }
53
+ async deleteAllByQuerystring(tenantId, query) {
54
+ if (!query.id) {
55
+ throw new Error('Must specify at least one query parameter');
56
+ }
57
+ return super.deleteAllByQuery(tenantId, {
58
+ where: {
59
+ ...(query.id && { id: query.id }),
60
+ },
61
+ });
62
+ }
63
+ }
64
+ //# sourceMappingURL=Tariff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tariff.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/Tariff.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAE/B,MAAM,OAAO,yBACX,SAAQ,mBAA2B;IAGnC,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,QAAgB,EAAE,UAAoB;QAC3D,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE;YACpC,KAAK,EAAE;gBACL,SAAS,EAAE;oBACT,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU;iBACpB;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,SAAiB;QACvD,OAAO,KAAK,CAAC,kBAAkB,CAAC,QAAQ,EAAE;YACxC,KAAK,EAAE;gBACL,SAAS,EAAE,SAAS;aACrB;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,MAAc;QACjD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;gBAC1D,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACxB,WAAW;aACZ,CAAC,CAAC;YACH,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC/E,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;gBACtC,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,KAAwB;QACnE,OAAO,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE;YACpC,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;aAClC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,QAAgB,EAAE,KAAwB;QACrE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YACtC,KAAK,EAAE;gBACL,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;aAClC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { SequelizeRepository } from './Base.js';
2
+ import type { ITenantRepository } from '../../../interfaces/index.js';
3
+ import type { BootstrapConfig } from '@citrineos/base';
4
+ import { Sequelize } from 'sequelize-typescript';
5
+ import type { ILogObj } from 'tslog';
6
+ import { Logger } from 'tslog';
7
+ import { Tenant } from '../model/Tenant.js';
8
+ export declare class SequelizeTenantRepository extends SequelizeRepository<Tenant> implements ITenantRepository {
9
+ constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
10
+ createTenant(tenant: Tenant): Promise<Tenant>;
11
+ }
@@ -0,0 +1,21 @@
1
+ // SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ import { SequelizeRepository } from './Base.js';
5
+ import { Sequelize } from 'sequelize-typescript';
6
+ import { Logger } from 'tslog';
7
+ import { Tenant } from '../model/Tenant.js';
8
+ export class SequelizeTenantRepository extends SequelizeRepository {
9
+ constructor(config, logger, sequelizeInstance) {
10
+ super(config, Tenant.MODEL_NAME, logger, sequelizeInstance);
11
+ }
12
+ async createTenant(tenant) {
13
+ const newTenant = Tenant.build({
14
+ name: tenant.name,
15
+ isUserTenant: tenant.isUserTenant,
16
+ url: tenant.url,
17
+ }); // bypass TS for tenant creation attributes
18
+ return await newTenant.save();
19
+ }
20
+ }
21
+ //# sourceMappingURL=Tenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tenant.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/Tenant.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,OAAO,yBACX,SAAQ,mBAA2B;IAGnC,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;YAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,GAAG,EAAE,MAAM,CAAC,GAAG;SACT,CAAC,CAAC,CAAC,2CAA2C;QACtD,OAAO,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACF"}