@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.
- package/dist/index.d.ts +9 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/dtos/GenerateCertificateChainRequest.d.ts +13 -0
- package/dist/interfaces/dtos/GenerateCertificateChainRequest.js +30 -0
- package/dist/interfaces/dtos/GenerateCertificateChainRequest.js.map +1 -0
- package/dist/interfaces/dtos/InstallRootCertificateRequest.d.ts +9 -0
- package/dist/interfaces/dtos/InstallRootCertificateRequest.js +22 -0
- package/dist/interfaces/dtos/InstallRootCertificateRequest.js.map +1 -0
- package/dist/interfaces/dtos/RegenerateExistingCertificate.d.ts +4 -0
- package/dist/interfaces/dtos/RegenerateExistingCertificate.js +8 -0
- package/dist/interfaces/dtos/RegenerateExistingCertificate.js.map +1 -0
- package/dist/interfaces/dtos/TlsCertificatesRequest.d.ts +7 -0
- package/dist/interfaces/dtos/TlsCertificatesRequest.js +17 -0
- package/dist/interfaces/dtos/TlsCertificatesRequest.js.map +1 -0
- package/dist/interfaces/dtos/UploadExistingCertificate.d.ts +6 -0
- package/dist/interfaces/dtos/UploadExistingCertificate.js +10 -0
- package/dist/interfaces/dtos/UploadExistingCertificate.js.map +1 -0
- package/dist/interfaces/index.d.ts +35 -0
- package/dist/interfaces/index.js +28 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/interfaces/projections/AuthorizationRestrictions.d.ts +18 -0
- package/dist/interfaces/projections/AuthorizationRestrictions.js +5 -0
- package/dist/interfaces/projections/AuthorizationRestrictions.js.map +1 -0
- package/dist/interfaces/projections/schemas/AuthorizationRestrictionsSchema.json +20 -0
- package/dist/interfaces/projections/schemas/TariffSchema.json +37 -0
- package/dist/interfaces/queries/Authorization.d.ts +5 -0
- package/dist/interfaces/queries/Authorization.js +17 -0
- package/dist/interfaces/queries/Authorization.js.map +1 -0
- package/dist/interfaces/queries/ChargingStation.d.ts +5 -0
- package/dist/interfaces/queries/ChargingStation.js +18 -0
- package/dist/interfaces/queries/ChargingStation.js.map +1 -0
- package/dist/interfaces/queries/Connection.d.ts +5 -0
- package/dist/interfaces/queries/Connection.js +17 -0
- package/dist/interfaces/queries/Connection.js.map +1 -0
- package/dist/interfaces/queries/Model.d.ts +5 -0
- package/dist/interfaces/queries/Model.js +18 -0
- package/dist/interfaces/queries/Model.js.map +1 -0
- package/dist/interfaces/queries/NetworkProfile.d.ts +11 -0
- package/dist/interfaces/queries/NetworkProfile.js +36 -0
- package/dist/interfaces/queries/NetworkProfile.js.map +1 -0
- package/dist/interfaces/queries/RootCertificate.d.ts +4 -0
- package/dist/interfaces/queries/RootCertificate.js +100 -0
- package/dist/interfaces/queries/RootCertificate.js.map +1 -0
- package/dist/interfaces/queries/Subscription.d.ts +1 -0
- package/dist/interfaces/queries/Subscription.js +37 -0
- package/dist/interfaces/queries/Subscription.js.map +1 -0
- package/dist/interfaces/queries/Tariff.d.ts +5 -0
- package/dist/interfaces/queries/Tariff.js +17 -0
- package/dist/interfaces/queries/Tariff.js.map +1 -0
- package/dist/interfaces/queries/Tenant.d.ts +5 -0
- package/dist/interfaces/queries/Tenant.js +41 -0
- package/dist/interfaces/queries/Tenant.js.map +1 -0
- package/dist/interfaces/queries/TlsCertificate.d.ts +5 -0
- package/dist/interfaces/queries/TlsCertificate.js +32 -0
- package/dist/interfaces/queries/TlsCertificate.js.map +1 -0
- package/dist/interfaces/queries/TransactionEvent.d.ts +6 -0
- package/dist/interfaces/queries/TransactionEvent.js +23 -0
- package/dist/interfaces/queries/TransactionEvent.js.map +1 -0
- package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.d.ts +5 -0
- package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.js +17 -0
- package/dist/interfaces/queries/UpdateChargingStationPasswordQuery.js.map +1 -0
- package/dist/interfaces/queries/VariableAttribute.d.ts +21 -0
- package/dist/interfaces/queries/VariableAttribute.js +71 -0
- package/dist/interfaces/queries/VariableAttribute.js.map +1 -0
- package/dist/interfaces/queries/Websocket.d.ts +17 -0
- package/dist/interfaces/queries/Websocket.js +115 -0
- package/dist/interfaces/queries/Websocket.js.map +1 -0
- package/dist/interfaces/repositories.d.ts +164 -0
- package/dist/interfaces/repositories.js +5 -0
- package/dist/interfaces/repositories.js.map +1 -0
- package/dist/layers/sequelize/index.d.ts +51 -0
- package/dist/layers/sequelize/index.js +58 -0
- package/dist/layers/sequelize/index.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.d.ts +6 -0
- package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.js +37 -0
- package/dist/layers/sequelize/mapper/1.6/AuthorizationMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/BootMapper.d.ts +4 -0
- package/dist/layers/sequelize/mapper/1.6/BootMapper.js +19 -0
- package/dist/layers/sequelize/mapper/1.6/BootMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.d.ts +66 -0
- package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.js +82 -0
- package/dist/layers/sequelize/mapper/1.6/ChargingProfileMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/LocationMapper.d.ts +6 -0
- package/dist/layers/sequelize/mapper/1.6/LocationMapper.js +69 -0
- package/dist/layers/sequelize/mapper/1.6/LocationMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.d.ts +65 -0
- package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.js +431 -0
- package/dist/layers/sequelize/mapper/1.6/MeterValueMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/1.6/index.d.ts +5 -0
- package/dist/layers/sequelize/mapper/1.6/index.js +9 -0
- package/dist/layers/sequelize/mapper/1.6/index.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.d.ts +14 -0
- package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.js +153 -0
- package/dist/layers/sequelize/mapper/2.0.1/AuthorizationMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/BootMapper.d.ts +5 -0
- package/dist/layers/sequelize/mapper/2.0.1/BootMapper.js +29 -0
- package/dist/layers/sequelize/mapper/2.0.1/BootMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.d.ts +84 -0
- package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.js +152 -0
- package/dist/layers/sequelize/mapper/2.0.1/ChargingProfileMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.d.ts +5 -0
- package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.js +23 -0
- package/dist/layers/sequelize/mapper/2.0.1/LocationMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.d.ts +45 -0
- package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.js +375 -0
- package/dist/layers/sequelize/mapper/2.0.1/MeterValueMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.d.ts +5 -0
- package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.js +18 -0
- package/dist/layers/sequelize/mapper/2.0.1/TransactionMapper.js.map +1 -0
- package/dist/layers/sequelize/mapper/2.0.1/index.d.ts +6 -0
- package/dist/layers/sequelize/mapper/2.0.1/index.js +10 -0
- package/dist/layers/sequelize/mapper/2.0.1/index.js.map +1 -0
- package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.d.ts +45 -0
- package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.js +137 -0
- package/dist/layers/sequelize/model/AsyncJob/AsyncJobStatus.js.map +1 -0
- package/dist/layers/sequelize/model/AsyncJob/index.d.ts +1 -0
- package/dist/layers/sequelize/model/AsyncJob/index.js +5 -0
- package/dist/layers/sequelize/model/AsyncJob/index.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/Authorization.d.ts +29 -0
- package/dist/layers/sequelize/model/Authorization/Authorization.js +122 -0
- package/dist/layers/sequelize/model/Authorization/Authorization.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.d.ts +39 -0
- package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.js +141 -0
- package/dist/layers/sequelize/model/Authorization/LocalListAuthorization.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersion.d.ts +15 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersion.js +74 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersion.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.d.ts +11 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.js +69 -0
- package/dist/layers/sequelize/model/Authorization/LocalListVersionAuthorization.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalList.d.ts +17 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalList.js +108 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalList.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.d.ts +11 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.js +69 -0
- package/dist/layers/sequelize/model/Authorization/SendLocalListAuthorization.js.map +1 -0
- package/dist/layers/sequelize/model/Authorization/index.d.ts +6 -0
- package/dist/layers/sequelize/model/Authorization/index.js +10 -0
- package/dist/layers/sequelize/model/Authorization/index.js.map +1 -0
- package/dist/layers/sequelize/model/AuthorizationTenant.d.ts +5 -0
- package/dist/layers/sequelize/model/AuthorizationTenant.js +32 -0
- package/dist/layers/sequelize/model/AuthorizationTenant.js.map +1 -0
- package/dist/layers/sequelize/model/BaseModelWithTenant.d.ts +8 -0
- package/dist/layers/sequelize/model/BaseModelWithTenant.js +50 -0
- package/dist/layers/sequelize/model/BaseModelWithTenant.js.map +1 -0
- package/dist/layers/sequelize/model/Boot.d.ts +29 -0
- package/dist/layers/sequelize/model/Boot.js +112 -0
- package/dist/layers/sequelize/model/Boot.js.map +1 -0
- package/dist/layers/sequelize/model/Cdrs/Cdrs.d.ts +105 -0
- package/dist/layers/sequelize/model/Cdrs/Cdrs.js +180 -0
- package/dist/layers/sequelize/model/Cdrs/Cdrs.js.map +1 -0
- package/dist/layers/sequelize/model/Cdrs/index.d.ts +1 -0
- package/dist/layers/sequelize/model/Cdrs/index.js +2 -0
- package/dist/layers/sequelize/model/Cdrs/index.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/Certificate.d.ts +27 -0
- package/dist/layers/sequelize/model/Certificate/Certificate.js +128 -0
- package/dist/layers/sequelize/model/Certificate/Certificate.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.d.ts +17 -0
- package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.js +95 -0
- package/dist/layers/sequelize/model/Certificate/DeleteCertificateAttempt.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.d.ts +17 -0
- package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.js +98 -0
- package/dist/layers/sequelize/model/Certificate/InstallCertificateAttempt.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/InstalledCertificate.d.ts +18 -0
- package/dist/layers/sequelize/model/Certificate/InstalledCertificate.js +108 -0
- package/dist/layers/sequelize/model/Certificate/InstalledCertificate.js.map +1 -0
- package/dist/layers/sequelize/model/Certificate/index.d.ts +11 -0
- package/dist/layers/sequelize/model/Certificate/index.js +17 -0
- package/dist/layers/sequelize/model/Certificate/index.js.map +1 -0
- package/dist/layers/sequelize/model/ChangeConfiguration.d.ts +13 -0
- package/dist/layers/sequelize/model/ChangeConfiguration.js +80 -0
- package/dist/layers/sequelize/model/ChangeConfiguration.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.d.ts +27 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.js +99 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingNeeds.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.d.ts +31 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.js +141 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingProfile.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.d.ts +28 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.js +118 -0
- package/dist/layers/sequelize/model/ChargingProfile/ChargingSchedule.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.d.ts +16 -0
- package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.js +86 -0
- package/dist/layers/sequelize/model/ChargingProfile/CompositeSchedule.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.d.ts +24 -0
- package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.js +91 -0
- package/dist/layers/sequelize/model/ChargingProfile/SalesTariff.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingProfile/index.d.ts +5 -0
- package/dist/layers/sequelize/model/ChargingProfile/index.js +9 -0
- package/dist/layers/sequelize/model/ChargingProfile/index.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingStationSecurityInfo.d.ts +14 -0
- package/dist/layers/sequelize/model/ChargingStationSecurityInfo.js +76 -0
- package/dist/layers/sequelize/model/ChargingStationSecurityInfo.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.d.ts +14 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.js +85 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/ChargingStationSequence.js.map +1 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/index.d.ts +1 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/index.js +5 -0
- package/dist/layers/sequelize/model/ChargingStationSequence/index.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/Component.d.ts +26 -0
- package/dist/layers/sequelize/model/DeviceModel/Component.js +99 -0
- package/dist/layers/sequelize/model/DeviceModel/Component.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.d.ts +11 -0
- package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.js +69 -0
- package/dist/layers/sequelize/model/DeviceModel/ComponentVariable.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/EvseType.d.ts +17 -0
- package/dist/layers/sequelize/model/DeviceModel/EvseType.js +83 -0
- package/dist/layers/sequelize/model/DeviceModel/EvseType.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/Variable.d.ts +27 -0
- package/dist/layers/sequelize/model/DeviceModel/Variable.js +96 -0
- package/dist/layers/sequelize/model/DeviceModel/Variable.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.d.ts +38 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.js +242 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableAttribute.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.d.ts +25 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.js +90 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableCharacteristics.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableStatus.d.ts +19 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableStatus.js +75 -0
- package/dist/layers/sequelize/model/DeviceModel/VariableStatus.js.map +1 -0
- package/dist/layers/sequelize/model/DeviceModel/index.d.ts +6 -0
- package/dist/layers/sequelize/model/DeviceModel/index.js +10 -0
- package/dist/layers/sequelize/model/DeviceModel/index.js.map +1 -0
- package/dist/layers/sequelize/model/Location/ChargingStation.d.ts +56 -0
- package/dist/layers/sequelize/model/Location/ChargingStation.js +178 -0
- package/dist/layers/sequelize/model/Location/ChargingStation.js.map +1 -0
- package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.d.ts +27 -0
- package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.js +93 -0
- package/dist/layers/sequelize/model/Location/ChargingStationNetworkProfile.js.map +1 -0
- package/dist/layers/sequelize/model/Location/Connector.d.ts +32 -0
- package/dist/layers/sequelize/model/Location/Connector.js +166 -0
- package/dist/layers/sequelize/model/Location/Connector.js.map +1 -0
- package/dist/layers/sequelize/model/Location/Evse.d.ts +28 -0
- package/dist/layers/sequelize/model/Location/Evse.js +122 -0
- package/dist/layers/sequelize/model/Location/Evse.js.map +1 -0
- package/dist/layers/sequelize/model/Location/LatestStatusNotification.d.ts +16 -0
- package/dist/layers/sequelize/model/Location/LatestStatusNotification.js +74 -0
- package/dist/layers/sequelize/model/Location/LatestStatusNotification.js.map +1 -0
- package/dist/layers/sequelize/model/Location/Location.d.ts +44 -0
- package/dist/layers/sequelize/model/Location/Location.js +182 -0
- package/dist/layers/sequelize/model/Location/Location.js.map +1 -0
- package/dist/layers/sequelize/model/Location/ServerNetworkProfile.d.ts +26 -0
- package/dist/layers/sequelize/model/Location/ServerNetworkProfile.js +120 -0
- package/dist/layers/sequelize/model/Location/ServerNetworkProfile.js.map +1 -0
- package/dist/layers/sequelize/model/Location/SetNetworkProfile.d.ts +52 -0
- package/dist/layers/sequelize/model/Location/SetNetworkProfile.js +120 -0
- package/dist/layers/sequelize/model/Location/SetNetworkProfile.js.map +1 -0
- package/dist/layers/sequelize/model/Location/StatusNotification.d.ts +20 -0
- package/dist/layers/sequelize/model/Location/StatusNotification.js +100 -0
- package/dist/layers/sequelize/model/Location/StatusNotification.js.map +1 -0
- package/dist/layers/sequelize/model/Location/index.d.ts +9 -0
- package/dist/layers/sequelize/model/Location/index.js +13 -0
- package/dist/layers/sequelize/model/Location/index.js.map +1 -0
- package/dist/layers/sequelize/model/MessageInfo/MessageInfo.d.ts +29 -0
- package/dist/layers/sequelize/model/MessageInfo/MessageInfo.js +126 -0
- package/dist/layers/sequelize/model/MessageInfo/MessageInfo.js.map +1 -0
- package/dist/layers/sequelize/model/MessageInfo/index.d.ts +1 -0
- package/dist/layers/sequelize/model/MessageInfo/index.js +5 -0
- package/dist/layers/sequelize/model/MessageInfo/index.js.map +1 -0
- package/dist/layers/sequelize/model/OCPPMessage.d.ts +21 -0
- package/dist/layers/sequelize/model/OCPPMessage.js +110 -0
- package/dist/layers/sequelize/model/OCPPMessage.js.map +1 -0
- package/dist/layers/sequelize/model/Reservation.d.ts +29 -0
- package/dist/layers/sequelize/model/Reservation.js +116 -0
- package/dist/layers/sequelize/model/Reservation.js.map +1 -0
- package/dist/layers/sequelize/model/SecurityEvent.d.ts +18 -0
- package/dist/layers/sequelize/model/SecurityEvent.js +78 -0
- package/dist/layers/sequelize/model/SecurityEvent.js.map +1 -0
- package/dist/layers/sequelize/model/Subscription/Subscription.d.ts +16 -0
- package/dist/layers/sequelize/model/Subscription/Subscription.js +94 -0
- package/dist/layers/sequelize/model/Subscription/Subscription.js.map +1 -0
- package/dist/layers/sequelize/model/Subscription/index.d.ts +1 -0
- package/dist/layers/sequelize/model/Subscription/index.js +5 -0
- package/dist/layers/sequelize/model/Subscription/index.js.map +1 -0
- package/dist/layers/sequelize/model/Tariff/TariffElements.d.ts +12 -0
- package/dist/layers/sequelize/model/Tariff/TariffElements.js +57 -0
- package/dist/layers/sequelize/model/Tariff/TariffElements.js.map +1 -0
- package/dist/layers/sequelize/model/Tariff/Tariffs.d.ts +37 -0
- package/dist/layers/sequelize/model/Tariff/Tariffs.js +181 -0
- package/dist/layers/sequelize/model/Tariff/Tariffs.js.map +1 -0
- package/dist/layers/sequelize/model/Tariff/index.d.ts +1 -0
- package/dist/layers/sequelize/model/Tariff/index.js +5 -0
- package/dist/layers/sequelize/model/Tariff/index.js.map +1 -0
- package/dist/layers/sequelize/model/Tenant.d.ts +96 -0
- package/dist/layers/sequelize/model/Tenant.js +268 -0
- package/dist/layers/sequelize/model/Tenant.js.map +1 -0
- package/dist/layers/sequelize/model/TenantPartner.d.ts +14 -0
- package/dist/layers/sequelize/model/TenantPartner.js +70 -0
- package/dist/layers/sequelize/model/TenantPartner.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/MeterValue.d.ts +18 -0
- package/dist/layers/sequelize/model/TransactionEvent/MeterValue.js +98 -0
- package/dist/layers/sequelize/model/TransactionEvent/MeterValue.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.d.ts +19 -0
- package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.js +96 -0
- package/dist/layers/sequelize/model/TransactionEvent/StartTransaction.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.d.ts +20 -0
- package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.js +100 -0
- package/dist/layers/sequelize/model/TransactionEvent/StopTransaction.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/Transaction.d.ts +48 -0
- package/dist/layers/sequelize/model/TransactionEvent/Transaction.js +216 -0
- package/dist/layers/sequelize/model/TransactionEvent/Transaction.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.d.ts +30 -0
- package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.js +129 -0
- package/dist/layers/sequelize/model/TransactionEvent/TransactionEvent.js.map +1 -0
- package/dist/layers/sequelize/model/TransactionEvent/index.d.ts +5 -0
- package/dist/layers/sequelize/model/TransactionEvent/index.js +9 -0
- package/dist/layers/sequelize/model/TransactionEvent/index.js.map +1 -0
- package/dist/layers/sequelize/model/VariableMonitoring/EventData.d.ts +33 -0
- package/dist/layers/sequelize/model/VariableMonitoring/EventData.js +137 -0
- package/dist/layers/sequelize/model/VariableMonitoring/EventData.js.map +1 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.d.ts +28 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.js +113 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoring.js.map +1 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.d.ts +18 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.js +71 -0
- package/dist/layers/sequelize/model/VariableMonitoring/VariableMonitoringStatus.js.map +1 -0
- package/dist/layers/sequelize/model/VariableMonitoring/index.d.ts +3 -0
- package/dist/layers/sequelize/model/VariableMonitoring/index.js +7 -0
- package/dist/layers/sequelize/model/VariableMonitoring/index.js.map +1 -0
- package/dist/layers/sequelize/model/index.d.ts +22 -0
- package/dist/layers/sequelize/model/index.js +27 -0
- package/dist/layers/sequelize/model/index.js.map +1 -0
- package/dist/layers/sequelize/repository/AsyncJobStatus.d.ts +24 -0
- package/dist/layers/sequelize/repository/AsyncJobStatus.js +39 -0
- package/dist/layers/sequelize/repository/AsyncJobStatus.js.map +1 -0
- package/dist/layers/sequelize/repository/Authorization.d.ts +18 -0
- package/dist/layers/sequelize/repository/Authorization.js +51 -0
- package/dist/layers/sequelize/repository/Authorization.js.map +1 -0
- package/dist/layers/sequelize/repository/Base.d.ts +28 -0
- package/dist/layers/sequelize/repository/Base.js +135 -0
- package/dist/layers/sequelize/repository/Base.js.map +1 -0
- package/dist/layers/sequelize/repository/BaseJunction.d.ts +33 -0
- package/dist/layers/sequelize/repository/BaseJunction.js +178 -0
- package/dist/layers/sequelize/repository/BaseJunction.js.map +1 -0
- package/dist/layers/sequelize/repository/Boot.d.ts +20 -0
- package/dist/layers/sequelize/repository/Boot.js +78 -0
- package/dist/layers/sequelize/repository/Boot.js.map +1 -0
- package/dist/layers/sequelize/repository/Certificate.d.ts +11 -0
- package/dist/layers/sequelize/repository/Certificate.js +39 -0
- package/dist/layers/sequelize/repository/Certificate.js.map +1 -0
- package/dist/layers/sequelize/repository/ChangeConfiguration.d.ts +10 -0
- package/dist/layers/sequelize/repository/ChangeConfiguration.js +36 -0
- package/dist/layers/sequelize/repository/ChangeConfiguration.js.map +1 -0
- package/dist/layers/sequelize/repository/ChargingProfile.d.ts +25 -0
- package/dist/layers/sequelize/repository/ChargingProfile.js +156 -0
- package/dist/layers/sequelize/repository/ChargingProfile.js.map +1 -0
- package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.d.ts +12 -0
- package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.js +28 -0
- package/dist/layers/sequelize/repository/ChargingStationSecurityInfo.js.map +1 -0
- package/dist/layers/sequelize/repository/ChargingStationSequence.d.ts +21 -0
- package/dist/layers/sequelize/repository/ChargingStationSequence.js +52 -0
- package/dist/layers/sequelize/repository/ChargingStationSequence.js.map +1 -0
- package/dist/layers/sequelize/repository/DeleteCertificateAttempt.d.ts +10 -0
- package/dist/layers/sequelize/repository/DeleteCertificateAttempt.js +13 -0
- package/dist/layers/sequelize/repository/DeleteCertificateAttempt.js.map +1 -0
- package/dist/layers/sequelize/repository/DeviceModel.d.ts +36 -0
- package/dist/layers/sequelize/repository/DeviceModel.js +417 -0
- package/dist/layers/sequelize/repository/DeviceModel.js.map +1 -0
- package/dist/layers/sequelize/repository/InstallCertificateAttempt.d.ts +10 -0
- package/dist/layers/sequelize/repository/InstallCertificateAttempt.js +13 -0
- package/dist/layers/sequelize/repository/InstallCertificateAttempt.js.map +1 -0
- package/dist/layers/sequelize/repository/InstalledCertificate.d.ts +10 -0
- package/dist/layers/sequelize/repository/InstalledCertificate.js +13 -0
- package/dist/layers/sequelize/repository/InstalledCertificate.js.map +1 -0
- package/dist/layers/sequelize/repository/LocalAuthList.d.ts +20 -0
- package/dist/layers/sequelize/repository/LocalAuthList.js +192 -0
- package/dist/layers/sequelize/repository/LocalAuthList.js.map +1 -0
- package/dist/layers/sequelize/repository/Location.d.ts +30 -0
- package/dist/layers/sequelize/repository/Location.js +263 -0
- package/dist/layers/sequelize/repository/Location.js.map +1 -0
- package/dist/layers/sequelize/repository/MessageInfo.d.ts +13 -0
- package/dist/layers/sequelize/repository/MessageInfo.js +55 -0
- package/dist/layers/sequelize/repository/MessageInfo.js.map +1 -0
- package/dist/layers/sequelize/repository/OCPPMessage.d.ts +12 -0
- package/dist/layers/sequelize/repository/OCPPMessage.js +65 -0
- package/dist/layers/sequelize/repository/OCPPMessage.js.map +1 -0
- package/dist/layers/sequelize/repository/RepositoryStore.d.ts +34 -0
- package/dist/layers/sequelize/repository/RepositoryStore.js +79 -0
- package/dist/layers/sequelize/repository/RepositoryStore.js.map +1 -0
- package/dist/layers/sequelize/repository/Reservation.d.ts +15 -0
- package/dist/layers/sequelize/repository/Reservation.js +68 -0
- package/dist/layers/sequelize/repository/Reservation.js.map +1 -0
- package/dist/layers/sequelize/repository/SecurityEvent.d.ts +18 -0
- package/dist/layers/sequelize/repository/SecurityEvent.js +46 -0
- package/dist/layers/sequelize/repository/SecurityEvent.js.map +1 -0
- package/dist/layers/sequelize/repository/ServerNetworkProfile.d.ts +14 -0
- package/dist/layers/sequelize/repository/ServerNetworkProfile.js +40 -0
- package/dist/layers/sequelize/repository/ServerNetworkProfile.js.map +1 -0
- package/dist/layers/sequelize/repository/Subscription.d.ts +20 -0
- package/dist/layers/sequelize/repository/Subscription.js +32 -0
- package/dist/layers/sequelize/repository/Subscription.js.map +1 -0
- package/dist/layers/sequelize/repository/Tariff.d.ts +15 -0
- package/dist/layers/sequelize/repository/Tariff.js +64 -0
- package/dist/layers/sequelize/repository/Tariff.js.map +1 -0
- package/dist/layers/sequelize/repository/Tenant.d.ts +11 -0
- package/dist/layers/sequelize/repository/Tenant.js +21 -0
- package/dist/layers/sequelize/repository/Tenant.js.map +1 -0
- package/dist/layers/sequelize/repository/TransactionEvent.d.ts +46 -0
- package/dist/layers/sequelize/repository/TransactionEvent.js +597 -0
- package/dist/layers/sequelize/repository/TransactionEvent.js.map +1 -0
- package/dist/layers/sequelize/repository/VariableMonitoring.d.ts +20 -0
- package/dist/layers/sequelize/repository/VariableMonitoring.js +168 -0
- package/dist/layers/sequelize/repository/VariableMonitoring.js.map +1 -0
- package/dist/layers/sequelize/util.d.ts +18 -0
- package/dist/layers/sequelize/util.js +143 -0
- package/dist/layers/sequelize/util.js.map +1 -0
- package/dist/util/CryptoUtils.d.ts +6 -0
- package/dist/util/CryptoUtils.js +14 -0
- package/dist/util/CryptoUtils.js.map +1 -0
- package/dist/util/PasswordHashAlgorithm.d.ts +15 -0
- package/dist/util/PasswordHashAlgorithm.js +2 -0
- package/dist/util/PasswordHashAlgorithm.js.map +1 -0
- package/dist/util/Pbkdf2.d.ts +9 -0
- package/dist/util/Pbkdf2.js +20 -0
- package/dist/util/Pbkdf2.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { CrudRepository, OCPP2_0_1 } from '@citrineos/base';
|
|
2
|
+
import { Boot } from '../model/Boot.js';
|
|
3
|
+
import { VariableAttribute } from '../model/index.js';
|
|
4
|
+
import { SequelizeRepository } from '../index.js';
|
|
5
|
+
import { Logger } from 'tslog';
|
|
6
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
7
|
+
export class SequelizeBootRepository extends SequelizeRepository {
|
|
8
|
+
variableAttributes;
|
|
9
|
+
constructor(config, logger, sequelizeInstance, variableAttributes) {
|
|
10
|
+
super(config, Boot.MODEL_NAME, logger, sequelizeInstance);
|
|
11
|
+
this.variableAttributes = variableAttributes
|
|
12
|
+
? variableAttributes
|
|
13
|
+
: new SequelizeRepository(config, VariableAttribute.MODEL_NAME, logger, sequelizeInstance);
|
|
14
|
+
}
|
|
15
|
+
async createOrUpdateByKey(tenantId, value, key) {
|
|
16
|
+
let savedBootConfig;
|
|
17
|
+
let created;
|
|
18
|
+
await this.s.transaction(async (sequelizeTransaction) => {
|
|
19
|
+
const [boot, bootCreated] = await this.readOrCreateByQuery(tenantId, {
|
|
20
|
+
where: {
|
|
21
|
+
tenantId,
|
|
22
|
+
id: key,
|
|
23
|
+
},
|
|
24
|
+
defaults: {
|
|
25
|
+
...value,
|
|
26
|
+
},
|
|
27
|
+
transaction: sequelizeTransaction,
|
|
28
|
+
});
|
|
29
|
+
if (!bootCreated) {
|
|
30
|
+
savedBootConfig = await boot.update({ ...value }, { transaction: sequelizeTransaction });
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
savedBootConfig = boot;
|
|
34
|
+
}
|
|
35
|
+
created = bootCreated;
|
|
36
|
+
});
|
|
37
|
+
if (savedBootConfig) {
|
|
38
|
+
if (value.pendingBootSetVariableIds) {
|
|
39
|
+
savedBootConfig.pendingBootSetVariables = await this.manageSetVariables(tenantId, value.pendingBootSetVariableIds, key, savedBootConfig.id);
|
|
40
|
+
}
|
|
41
|
+
this.emit(created ? 'created' : 'updated', [savedBootConfig]);
|
|
42
|
+
}
|
|
43
|
+
return savedBootConfig;
|
|
44
|
+
}
|
|
45
|
+
async updateStatusByKey(tenantId, status, statusInfo, key) {
|
|
46
|
+
return await this.updateByKey(tenantId, { status, statusInfo }, key);
|
|
47
|
+
}
|
|
48
|
+
async updateLastBootTimeByKey(tenantId, lastBootTime, key) {
|
|
49
|
+
return await this.updateByKey(tenantId, { lastBootTime }, key);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Private Methods
|
|
53
|
+
*/
|
|
54
|
+
async manageSetVariables(tenantId, setVariableIds, stationId, bootConfigId) {
|
|
55
|
+
const managedSetVariables = [];
|
|
56
|
+
// Unassigns variables
|
|
57
|
+
await this.variableAttributes.updateAllByQuery(tenantId, { bootConfigId: null }, {
|
|
58
|
+
where: {
|
|
59
|
+
stationId,
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
// Assigns variables, or throws an error if variable with id does not exist
|
|
63
|
+
for (const setVariableId of setVariableIds) {
|
|
64
|
+
const setVariable = await this.variableAttributes.updateByKey(tenantId, { bootConfigId }, setVariableId.toString());
|
|
65
|
+
if (!setVariable) {
|
|
66
|
+
// When this is called from createOrUpdateByKey, this code should be impossible to reach
|
|
67
|
+
// Since the boot object would have already been upserted with the pendingBootSetVariableIds as foreign keys
|
|
68
|
+
// And if they were not valid foreign keys, it would have thrown an error
|
|
69
|
+
throw new Error('SetVariableId does not exist ' + setVariableId);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
managedSetVariables.push(setVariable);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return managedSetVariables;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=Boot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Boot.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/Boot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SequelizeRepository } from './Base.js';
|
|
2
|
+
import type { ICertificateRepository } from '../../../interfaces/index.js';
|
|
3
|
+
import { Certificate } from '../model/index.js';
|
|
4
|
+
import type { BootstrapConfig } from '@citrineos/base';
|
|
5
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
6
|
+
import type { ILogObj } from 'tslog';
|
|
7
|
+
import { Logger } from 'tslog';
|
|
8
|
+
export declare class SequelizeCertificateRepository extends SequelizeRepository<Certificate> implements ICertificateRepository {
|
|
9
|
+
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
|
|
10
|
+
createOrUpdateCertificate(tenantId: number, certificate: Certificate): Promise<Certificate>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 { Certificate } from '../model/index.js';
|
|
6
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
7
|
+
import { Logger } from 'tslog';
|
|
8
|
+
export class SequelizeCertificateRepository extends SequelizeRepository {
|
|
9
|
+
constructor(config, logger, sequelizeInstance) {
|
|
10
|
+
super(config, Certificate.MODEL_NAME, logger, sequelizeInstance);
|
|
11
|
+
}
|
|
12
|
+
async createOrUpdateCertificate(tenantId, certificate) {
|
|
13
|
+
certificate.tenantId = tenantId;
|
|
14
|
+
return await this.s.transaction(async (transaction) => {
|
|
15
|
+
const savedCert = await this.s.models[Certificate.MODEL_NAME].findOne({
|
|
16
|
+
where: {
|
|
17
|
+
serialNumber: certificate.serialNumber,
|
|
18
|
+
issuerName: certificate.issuerName,
|
|
19
|
+
},
|
|
20
|
+
transaction,
|
|
21
|
+
});
|
|
22
|
+
if (!savedCert) {
|
|
23
|
+
const savedCertificate = await certificate.save({ transaction });
|
|
24
|
+
this.emit('created', [savedCertificate]);
|
|
25
|
+
return savedCertificate;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
return (await this.updateAllByQuery(tenantId, certificate, {
|
|
29
|
+
where: {
|
|
30
|
+
serialNumber: certificate.serialNumber,
|
|
31
|
+
issuerName: certificate.issuerName,
|
|
32
|
+
},
|
|
33
|
+
transaction,
|
|
34
|
+
}))[0];
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=Certificate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Certificate.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/Certificate.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,MAAM,OAAO,8BACX,SAAQ,mBAAgC;IAGxC,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,QAAgB,EAChB,WAAwB;QAExB,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAChC,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;gBACpE,KAAK,EAAE;oBACL,YAAY,EAAE,WAAW,CAAC,YAAY;oBACtC,UAAU,EAAE,WAAW,CAAC,UAAU;iBACnC;gBACD,WAAW;aACZ,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBACzC,OAAO,gBAAgB,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CACL,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE;oBACjD,KAAK,EAAE;wBACL,YAAY,EAAE,WAAW,CAAC,YAAY;wBACtC,UAAU,EAAE,WAAW,CAAC,UAAU;qBACnC;oBACD,WAAW;iBACZ,CAAC,CACH,CAAC,CAAC,CAAC,CAAC;YACP,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BootstrapConfig } from '@citrineos/base';
|
|
2
|
+
import type { IChangeConfigurationRepository } from '../../../interfaces/index.js';
|
|
3
|
+
import { ChangeConfiguration, SequelizeRepository } from '../index.js';
|
|
4
|
+
import type { ILogObj } from 'tslog';
|
|
5
|
+
import { Logger } from 'tslog';
|
|
6
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
7
|
+
export declare class SequelizeChangeConfigurationRepository extends SequelizeRepository<ChangeConfiguration> implements IChangeConfigurationRepository {
|
|
8
|
+
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
|
|
9
|
+
createOrUpdateChangeConfiguration(tenantId: number, configuration: ChangeConfiguration): Promise<ChangeConfiguration | undefined>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { ChangeConfiguration, SequelizeRepository } from '../index.js';
|
|
5
|
+
import { Logger } from 'tslog';
|
|
6
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
7
|
+
export class SequelizeChangeConfigurationRepository extends SequelizeRepository {
|
|
8
|
+
constructor(config, logger, sequelizeInstance) {
|
|
9
|
+
super(config, ChangeConfiguration.MODEL_NAME, logger, sequelizeInstance);
|
|
10
|
+
}
|
|
11
|
+
async createOrUpdateChangeConfiguration(tenantId, configuration) {
|
|
12
|
+
let changeConfiguration;
|
|
13
|
+
await this.s.transaction(async (sequelizeTransaction) => {
|
|
14
|
+
const [savedConfig, created] = await this.readOrCreateByQuery(tenantId, {
|
|
15
|
+
where: {
|
|
16
|
+
tenantId: tenantId,
|
|
17
|
+
stationId: configuration.stationId,
|
|
18
|
+
key: configuration.key,
|
|
19
|
+
},
|
|
20
|
+
defaults: {
|
|
21
|
+
...configuration,
|
|
22
|
+
},
|
|
23
|
+
transaction: sequelizeTransaction,
|
|
24
|
+
});
|
|
25
|
+
if (created) {
|
|
26
|
+
changeConfiguration = savedConfig;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
changeConfiguration = await savedConfig.update({ ...configuration }, { transaction: sequelizeTransaction });
|
|
30
|
+
this.emit('updated', [changeConfiguration]);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
return changeConfiguration;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=ChangeConfiguration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangeConfiguration.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/ChangeConfiguration.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AAItC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,OAAO,sCACX,SAAQ,mBAAwC;IAGhD,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,iCAAiC,CACrC,QAAgB,EAChB,aAAkC;QAElC,IAAI,mBAAoD,CAAC;QACzD,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE;YACtD,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;gBACtE,KAAK,EAAE;oBACL,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,aAAa,CAAC,SAAS;oBAClC,GAAG,EAAE,aAAa,CAAC,GAAG;iBACvB;gBACD,QAAQ,EAAE;oBACR,GAAG,aAAa;iBACjB;gBACD,WAAW,EAAE,oBAAoB;aAClC,CAAC,CAAC;YACH,IAAI,OAAO,EAAE,CAAC;gBACZ,mBAAmB,GAAG,WAAW,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,mBAAmB,GAAG,MAAM,WAAW,CAAC,MAAM,CAC5C,EAAE,GAAG,aAAa,EAAE,EACpB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CACtC,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { BootstrapConfig, ChargingLimitSourceEnumType, ChargingProfilePurposeEnumType } from '@citrineos/base';
|
|
2
|
+
import { CrudRepository, OCPP2_0_1 } from '@citrineos/base';
|
|
3
|
+
import { SequelizeRepository } from './Base.js';
|
|
4
|
+
import type { IChargingProfileRepository } from '../../../interfaces/index.js';
|
|
5
|
+
import type { ChargingProfileInput, CompositeScheduleInput } from '../mapper/2.0.1/ChargingProfileMapper.js';
|
|
6
|
+
import { ChargingNeeds, ChargingProfile, ChargingSchedule, CompositeSchedule, EvseType, SalesTariff, Transaction } from '../model/index.js';
|
|
7
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
8
|
+
import type { ILogObj } from 'tslog';
|
|
9
|
+
import { Logger } from 'tslog';
|
|
10
|
+
export declare class SequelizeChargingProfileRepository extends SequelizeRepository<ChargingProfile> implements IChargingProfileRepository {
|
|
11
|
+
chargingNeeds: CrudRepository<ChargingNeeds>;
|
|
12
|
+
chargingSchedule: CrudRepository<ChargingSchedule>;
|
|
13
|
+
salesTariff: CrudRepository<SalesTariff>;
|
|
14
|
+
transaction: CrudRepository<Transaction>;
|
|
15
|
+
evse: CrudRepository<EvseType>;
|
|
16
|
+
compositeSchedule: CrudRepository<CompositeSchedule>;
|
|
17
|
+
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize, chargingNeeds?: CrudRepository<ChargingNeeds>, chargingSchedule?: CrudRepository<ChargingSchedule>, salesTariff?: CrudRepository<SalesTariff>, transaction?: CrudRepository<Transaction>, evse?: CrudRepository<EvseType>, compositeSchedule?: CrudRepository<CompositeSchedule>);
|
|
18
|
+
createOrUpdateChargingProfile(tenantId: number, chargingProfile: ChargingProfileInput, stationId: string, evseId?: number | null, chargingLimitSource?: ChargingLimitSourceEnumType, isActive?: boolean): Promise<ChargingProfile>;
|
|
19
|
+
createChargingNeeds(tenantId: number, chargingNeedsReq: OCPP2_0_1.NotifyEVChargingNeedsRequest, stationId: string): Promise<ChargingNeeds>;
|
|
20
|
+
findChargingNeedsByEvseDBIdAndTransactionDBId(tenantId: number, evseDBId: number, transactionDataBaseId: number | null): Promise<ChargingNeeds | undefined>;
|
|
21
|
+
createCompositeSchedule(tenantId: number, compositeSchedule: CompositeScheduleInput, stationId: string): Promise<CompositeSchedule>;
|
|
22
|
+
getNextChargingScheduleId(tenantId: number, stationId: string): Promise<number>;
|
|
23
|
+
getNextChargingProfileId(tenantId: number, stationId: string): Promise<number>;
|
|
24
|
+
getNextStackLevel(tenantId: number, stationId: string, transactionDatabaseId: number | null, profilePurpose: ChargingProfilePurposeEnumType): Promise<number>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
// SPDX-FileCopyrightText: 2025 Contributors to the CitrineOS Project
|
|
2
|
+
//
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
import { ChargingLimitSourceEnum, CrudRepository, OCPP2_0_1 } from '@citrineos/base';
|
|
5
|
+
import { SequelizeRepository } from './Base.js';
|
|
6
|
+
import { ChargingNeeds, ChargingProfile, ChargingSchedule, CompositeSchedule, Evse, EvseType, SalesTariff, Transaction, } from '../model/index.js';
|
|
7
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
8
|
+
import { Logger } from 'tslog';
|
|
9
|
+
export class SequelizeChargingProfileRepository extends SequelizeRepository {
|
|
10
|
+
chargingNeeds;
|
|
11
|
+
chargingSchedule;
|
|
12
|
+
salesTariff;
|
|
13
|
+
transaction;
|
|
14
|
+
evse;
|
|
15
|
+
compositeSchedule;
|
|
16
|
+
constructor(config, logger, sequelizeInstance, chargingNeeds, chargingSchedule, salesTariff, transaction, evse, compositeSchedule) {
|
|
17
|
+
super(config, ChargingProfile.MODEL_NAME, logger, sequelizeInstance);
|
|
18
|
+
this.chargingNeeds = chargingNeeds
|
|
19
|
+
? chargingNeeds
|
|
20
|
+
: new SequelizeRepository(config, ChargingNeeds.MODEL_NAME, logger, sequelizeInstance);
|
|
21
|
+
this.chargingSchedule = chargingSchedule
|
|
22
|
+
? chargingSchedule
|
|
23
|
+
: new SequelizeRepository(config, ChargingSchedule.MODEL_NAME, logger, sequelizeInstance);
|
|
24
|
+
this.evse = evse
|
|
25
|
+
? evse
|
|
26
|
+
: new SequelizeRepository(config, EvseType.MODEL_NAME, logger, sequelizeInstance);
|
|
27
|
+
this.salesTariff = salesTariff
|
|
28
|
+
? salesTariff
|
|
29
|
+
: new SequelizeRepository(config, SalesTariff.MODEL_NAME, logger, sequelizeInstance);
|
|
30
|
+
this.transaction = transaction
|
|
31
|
+
? transaction
|
|
32
|
+
: new SequelizeRepository(config, Transaction.MODEL_NAME, logger, sequelizeInstance);
|
|
33
|
+
this.compositeSchedule = compositeSchedule
|
|
34
|
+
? compositeSchedule
|
|
35
|
+
: new SequelizeRepository(config, CompositeSchedule.MODEL_NAME, logger, sequelizeInstance);
|
|
36
|
+
}
|
|
37
|
+
async createOrUpdateChargingProfile(tenantId, chargingProfile, stationId, evseId, chargingLimitSource, isActive) {
|
|
38
|
+
let transactionDBId;
|
|
39
|
+
if (chargingProfile.transactionId) {
|
|
40
|
+
const activeTransaction = await Transaction.findOne({
|
|
41
|
+
where: {
|
|
42
|
+
stationId,
|
|
43
|
+
transactionId: chargingProfile.transactionId,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
transactionDBId = activeTransaction?.id;
|
|
47
|
+
}
|
|
48
|
+
const [savedChargingProfile, profileCreated] = await this.readOrCreateByQuery(tenantId, {
|
|
49
|
+
where: {
|
|
50
|
+
tenantId: tenantId,
|
|
51
|
+
stationId: stationId,
|
|
52
|
+
id: chargingProfile.id,
|
|
53
|
+
},
|
|
54
|
+
defaults: {
|
|
55
|
+
...chargingProfile,
|
|
56
|
+
stationId: stationId,
|
|
57
|
+
evseId: evseId,
|
|
58
|
+
transactionDatabaseId: transactionDBId,
|
|
59
|
+
chargingLimitSource: chargingLimitSource ?? ChargingLimitSourceEnum.CSO,
|
|
60
|
+
isActive: isActive === undefined ? false : isActive,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
if (!profileCreated) {
|
|
64
|
+
await this.updateByKey(tenantId, {
|
|
65
|
+
...chargingProfile,
|
|
66
|
+
chargingSchedule: chargingProfile.chargingSchedule.map((s) => ({ ...s })),
|
|
67
|
+
stationId: stationId,
|
|
68
|
+
transactionDatabaseId: transactionDBId,
|
|
69
|
+
evseId: evseId,
|
|
70
|
+
chargingLimitSource: chargingLimitSource ?? ChargingLimitSourceEnum.CSO,
|
|
71
|
+
isActive: isActive === undefined ? false : isActive,
|
|
72
|
+
}, savedChargingProfile.databaseId.toString());
|
|
73
|
+
// delete existed charging schedules and sales tariff
|
|
74
|
+
const deletedChargingSchedules = await this.chargingSchedule.deleteAllByQuery(tenantId, {
|
|
75
|
+
where: {
|
|
76
|
+
chargingProfileDatabaseId: savedChargingProfile.databaseId,
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
for (const deletedSchedule of deletedChargingSchedules) {
|
|
80
|
+
await this.salesTariff.deleteAllByQuery(tenantId, {
|
|
81
|
+
where: {
|
|
82
|
+
chargingScheduleDatabaseId: deletedSchedule.databaseId,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
for (const chargingSchedule of chargingProfile.chargingSchedule) {
|
|
88
|
+
const savedChargingSchedule = await this.chargingSchedule.create(tenantId, ChargingSchedule.build({
|
|
89
|
+
tenantId,
|
|
90
|
+
stationId,
|
|
91
|
+
chargingProfileDatabaseId: savedChargingProfile.databaseId,
|
|
92
|
+
...chargingSchedule,
|
|
93
|
+
}));
|
|
94
|
+
if (chargingSchedule.salesTariff) {
|
|
95
|
+
await this.salesTariff.create(tenantId, SalesTariff.build({
|
|
96
|
+
tenantId,
|
|
97
|
+
chargingScheduleDatabaseId: savedChargingSchedule.databaseId,
|
|
98
|
+
...chargingSchedule.salesTariff,
|
|
99
|
+
}));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return savedChargingProfile;
|
|
103
|
+
}
|
|
104
|
+
async createChargingNeeds(tenantId, chargingNeedsReq, stationId) {
|
|
105
|
+
const activeTransaction = await Transaction.findOne({
|
|
106
|
+
where: {
|
|
107
|
+
stationId,
|
|
108
|
+
isActive: true,
|
|
109
|
+
},
|
|
110
|
+
include: [{ model: Evse, where: { evseTypeId: chargingNeedsReq.evseId }, required: true }],
|
|
111
|
+
});
|
|
112
|
+
if (!activeTransaction) {
|
|
113
|
+
throw new Error(`No active transaction found on station ${stationId} evse ${chargingNeedsReq.evseId}`);
|
|
114
|
+
}
|
|
115
|
+
return await this.chargingNeeds.create(tenantId, ChargingNeeds.build({
|
|
116
|
+
tenantId,
|
|
117
|
+
...chargingNeedsReq.chargingNeeds,
|
|
118
|
+
evseId: activeTransaction.evseId,
|
|
119
|
+
transactionDatabaseId: activeTransaction.id,
|
|
120
|
+
maxScheduleTuples: chargingNeedsReq.maxScheduleTuples,
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
async findChargingNeedsByEvseDBIdAndTransactionDBId(tenantId, evseDBId, transactionDataBaseId) {
|
|
124
|
+
const chargingNeedsArray = await this.chargingNeeds.readAllByQuery(tenantId, {
|
|
125
|
+
where: {
|
|
126
|
+
evseId: evseDBId,
|
|
127
|
+
transactionDatabaseId: transactionDataBaseId,
|
|
128
|
+
},
|
|
129
|
+
order: [['createdAt', 'DESC']],
|
|
130
|
+
});
|
|
131
|
+
return chargingNeedsArray.length > 0 ? chargingNeedsArray[0] : undefined;
|
|
132
|
+
}
|
|
133
|
+
async createCompositeSchedule(tenantId, compositeSchedule, stationId) {
|
|
134
|
+
return await this.compositeSchedule.create(tenantId, CompositeSchedule.build({
|
|
135
|
+
tenantId,
|
|
136
|
+
...compositeSchedule,
|
|
137
|
+
stationId,
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
140
|
+
async getNextChargingScheduleId(tenantId, stationId) {
|
|
141
|
+
return await this.chargingSchedule.readNextValue(tenantId, 'id', { where: { stationId } });
|
|
142
|
+
}
|
|
143
|
+
async getNextChargingProfileId(tenantId, stationId) {
|
|
144
|
+
return await this.readNextValue(tenantId, 'id', { where: { stationId } });
|
|
145
|
+
}
|
|
146
|
+
async getNextStackLevel(tenantId, stationId, transactionDatabaseId, profilePurpose) {
|
|
147
|
+
return await this.readNextValue(tenantId, 'stackLevel', {
|
|
148
|
+
where: {
|
|
149
|
+
stationId,
|
|
150
|
+
transactionDatabaseId: transactionDatabaseId,
|
|
151
|
+
chargingProfilePurpose: profilePurpose,
|
|
152
|
+
},
|
|
153
|
+
}, 0);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=ChargingProfile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChargingProfile.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/ChargingProfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SequelizeRepository } from './Base.js';
|
|
2
|
+
import { ChargingStationSecurityInfo } from '../model/index.js';
|
|
3
|
+
import type { ILogObj } from 'tslog';
|
|
4
|
+
import { Logger } from 'tslog';
|
|
5
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
6
|
+
import type { BootstrapConfig } from '@citrineos/base';
|
|
7
|
+
import type { IChargingStationSecurityInfoRepository } from '../../../interfaces/index.js';
|
|
8
|
+
export declare class SequelizeChargingStationSecurityInfoRepository extends SequelizeRepository<ChargingStationSecurityInfo> implements IChargingStationSecurityInfoRepository {
|
|
9
|
+
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
|
|
10
|
+
readChargingStationPublicKeyFileId(tenantId: number, stationId: string): Promise<string>;
|
|
11
|
+
readOrCreateChargingStationInfo(tenantId: number, stationId: string, publicKeyFileId: string): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 { ChargingStationSecurityInfo } from '../model/index.js';
|
|
6
|
+
import { Logger } from 'tslog';
|
|
7
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
8
|
+
export class SequelizeChargingStationSecurityInfoRepository extends SequelizeRepository {
|
|
9
|
+
constructor(config, logger, sequelizeInstance) {
|
|
10
|
+
super(config, ChargingStationSecurityInfo.MODEL_NAME, logger, sequelizeInstance);
|
|
11
|
+
}
|
|
12
|
+
async readChargingStationPublicKeyFileId(tenantId, stationId) {
|
|
13
|
+
const existingInfo = await this.readOnlyOneByQuery(tenantId, { where: { stationId } });
|
|
14
|
+
return existingInfo ? existingInfo.publicKeyFileId : '';
|
|
15
|
+
}
|
|
16
|
+
async readOrCreateChargingStationInfo(tenantId, stationId, publicKeyFileId) {
|
|
17
|
+
await this.readOrCreateByQuery(tenantId, {
|
|
18
|
+
where: {
|
|
19
|
+
tenantId,
|
|
20
|
+
stationId,
|
|
21
|
+
},
|
|
22
|
+
defaults: {
|
|
23
|
+
publicKeyFileId,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ChargingStationSecurityInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChargingStationSecurityInfo.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/ChargingStationSecurityInfo.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,MAAM,OAAO,8CACX,SAAQ,mBAAgD;IAGxD,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,kCAAkC,CAAC,QAAgB,EAAE,SAAiB;QAC1E,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACvF,OAAO,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,+BAA+B,CACnC,QAAgB,EAChB,SAAiB,EACjB,eAAuB;QAEvB,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;YACvC,KAAK,EAAE;gBACL,QAAQ;gBACR,SAAS;aACV;YACD,QAAQ,EAAE;gBACR,eAAe;aAChB;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BootstrapConfig, ChargingStationSequenceTypeEnumType } from '@citrineos/base';
|
|
2
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
3
|
+
import type { ILogObj } from 'tslog';
|
|
4
|
+
import { Logger } from 'tslog';
|
|
5
|
+
import type { IChargingStationSequenceRepository } from '../../../interfaces/index.js';
|
|
6
|
+
import { ChargingStationSequence } from '../model/index.js';
|
|
7
|
+
import { SequelizeRepository } from './Base.js';
|
|
8
|
+
export declare class SequelizeChargingStationSequenceRepository extends SequelizeRepository<ChargingStationSequence> implements IChargingStationSequenceRepository {
|
|
9
|
+
private static readonly SEQUENCE_START;
|
|
10
|
+
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
|
|
11
|
+
/**
|
|
12
|
+
* Converts a Sequelize bigint value to a JavaScript number.
|
|
13
|
+
* Sequelize returns PostgreSQL BIGINT columns as strings to avoid precision loss,
|
|
14
|
+
* but OCPP requires numeric types (e.g., requestId in GetChargingProfilesRequest).
|
|
15
|
+
*
|
|
16
|
+
* @param value - The value from Sequelize (may be string or number)
|
|
17
|
+
* @returns A JavaScript number
|
|
18
|
+
*/
|
|
19
|
+
private _ensureNumber;
|
|
20
|
+
getNextSequenceValue(tenantId: number, stationId: string, type: ChargingStationSequenceTypeEnumType): Promise<number>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
2
|
+
import { Logger } from 'tslog';
|
|
3
|
+
import { ChargingStationSequence } from '../model/index.js';
|
|
4
|
+
import { SequelizeRepository } from './Base.js';
|
|
5
|
+
export class SequelizeChargingStationSequenceRepository extends SequelizeRepository {
|
|
6
|
+
static SEQUENCE_START = 1;
|
|
7
|
+
constructor(config, logger, sequelizeInstance) {
|
|
8
|
+
super(config, ChargingStationSequence.MODEL_NAME, logger, sequelizeInstance);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Converts a Sequelize bigint value to a JavaScript number.
|
|
12
|
+
* Sequelize returns PostgreSQL BIGINT columns as strings to avoid precision loss,
|
|
13
|
+
* but OCPP requires numeric types (e.g., requestId in GetChargingProfilesRequest).
|
|
14
|
+
*
|
|
15
|
+
* @param value - The value from Sequelize (may be string or number)
|
|
16
|
+
* @returns A JavaScript number
|
|
17
|
+
*/
|
|
18
|
+
_ensureNumber(value) {
|
|
19
|
+
if (value === null || value === undefined) {
|
|
20
|
+
return SequelizeChargingStationSequenceRepository.SEQUENCE_START;
|
|
21
|
+
}
|
|
22
|
+
if (typeof value === 'string') {
|
|
23
|
+
const parsed = parseInt(value, 10);
|
|
24
|
+
if (isNaN(parsed)) {
|
|
25
|
+
return SequelizeChargingStationSequenceRepository.SEQUENCE_START;
|
|
26
|
+
}
|
|
27
|
+
return parsed;
|
|
28
|
+
}
|
|
29
|
+
return Number(value);
|
|
30
|
+
}
|
|
31
|
+
async getNextSequenceValue(tenantId, stationId, type) {
|
|
32
|
+
return await this.s.transaction(async (transaction) => {
|
|
33
|
+
const [storedSequence, sequenceCreated] = await this.readOrCreateByQuery(tenantId, {
|
|
34
|
+
where: {
|
|
35
|
+
tenantId: tenantId,
|
|
36
|
+
stationId: stationId,
|
|
37
|
+
type: type,
|
|
38
|
+
},
|
|
39
|
+
defaults: {
|
|
40
|
+
value: SequelizeChargingStationSequenceRepository.SEQUENCE_START,
|
|
41
|
+
},
|
|
42
|
+
transaction,
|
|
43
|
+
});
|
|
44
|
+
if (!sequenceCreated) {
|
|
45
|
+
await storedSequence.increment('value', { transaction });
|
|
46
|
+
await storedSequence.reload({ transaction });
|
|
47
|
+
}
|
|
48
|
+
return this._ensureNumber(storedSequence.get('value'));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=ChargingStationSequence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChargingStationSequence.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/ChargingStationSequence.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,OAAO,0CACX,SAAQ,mBAA4C;IAG5C,MAAM,CAAU,cAAc,GAAG,CAAC,CAAC;IAE3C,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACK,aAAa,CAAC,KAAyC;QAC7D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,0CAA0C,CAAC,cAAc,CAAC;QACnE,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClB,OAAO,0CAA0C,CAAC,cAAc,CAAC;YACnE,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,QAAgB,EAChB,SAAiB,EACjB,IAAyC;QAEzC,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACpD,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE;gBACjF,KAAK,EAAE;oBACL,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,SAAS;oBACpB,IAAI,EAAE,IAAI;iBACX;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,0CAA0C,CAAC,cAAc;iBACjE;gBACD,WAAW;aACZ,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;gBACzD,MAAM,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SequelizeRepository } from './Base.js';
|
|
2
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
3
|
+
import type { ILogObj } from 'tslog';
|
|
4
|
+
import { Logger } from 'tslog';
|
|
5
|
+
import { DeleteCertificateAttempt } from '../model/index.js';
|
|
6
|
+
import type { IDeleteCertificateAttemptRepository } from '../../../interfaces/index.js';
|
|
7
|
+
import type { BootstrapConfig } from '@citrineos/base';
|
|
8
|
+
export declare class SequelizeDeleteCertificateAttemptRepository extends SequelizeRepository<DeleteCertificateAttempt> implements IDeleteCertificateAttemptRepository {
|
|
9
|
+
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize);
|
|
10
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
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 { DeleteCertificateAttempt } from '../model/index.js';
|
|
8
|
+
export class SequelizeDeleteCertificateAttemptRepository extends SequelizeRepository {
|
|
9
|
+
constructor(config, logger, sequelizeInstance) {
|
|
10
|
+
super(config, DeleteCertificateAttempt.MODEL_NAME, logger, sequelizeInstance);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=DeleteCertificateAttempt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DeleteCertificateAttempt.js","sourceRoot":"","sources":["../../../../src/layers/sequelize/repository/DeleteCertificateAttempt.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,sCAAsC;AAEtC,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,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAI7D,MAAM,OAAO,2CACX,SAAQ,mBAA6C;IAGrD,YAAY,MAAuB,EAAE,MAAwB,EAAE,iBAA6B;QAC1F,KAAK,CAAC,MAAM,EAAE,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChF,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { BootstrapConfig } from '@citrineos/base';
|
|
2
|
+
import { CrudRepository, OCPP2_0_1 } from '@citrineos/base';
|
|
3
|
+
import { SequelizeRepository } from './Base.js';
|
|
4
|
+
import { type IDeviceModelRepository, type VariableAttributeQuerystring } from '../../../interfaces/index.js';
|
|
5
|
+
import { Component, EvseType, Variable, VariableAttribute, VariableCharacteristics, VariableStatus } from '../model/index.js';
|
|
6
|
+
import { ComponentVariable } from '../model/DeviceModel/ComponentVariable.js';
|
|
7
|
+
import { Sequelize } from 'sequelize-typescript';
|
|
8
|
+
import type { ILogObj } from 'tslog';
|
|
9
|
+
import { Logger } from 'tslog';
|
|
10
|
+
export declare class SequelizeDeviceModelRepository extends SequelizeRepository<VariableAttribute> implements IDeviceModelRepository {
|
|
11
|
+
variable: CrudRepository<Variable>;
|
|
12
|
+
component: CrudRepository<Component>;
|
|
13
|
+
evse: CrudRepository<EvseType>;
|
|
14
|
+
variableCharacteristics: CrudRepository<VariableCharacteristics>;
|
|
15
|
+
componentVariable: CrudRepository<ComponentVariable>;
|
|
16
|
+
variableStatus: CrudRepository<VariableStatus>;
|
|
17
|
+
constructor(config: BootstrapConfig, logger?: Logger<ILogObj>, sequelizeInstance?: Sequelize, variable?: CrudRepository<Variable>, component?: CrudRepository<Component>, evse?: CrudRepository<EvseType>, componentVariable?: CrudRepository<ComponentVariable>, variableCharacteristics?: CrudRepository<VariableCharacteristics>, variableStatus?: CrudRepository<VariableStatus>);
|
|
18
|
+
createOrUpdateDeviceModelByStationId(tenantId: number, value: OCPP2_0_1.ReportDataType, stationId: string, isoTimestamp: string): Promise<VariableAttribute[]>;
|
|
19
|
+
findOrCreateEvseAndComponentAndVariable(tenantId: number, componentType: OCPP2_0_1.ComponentType, variableType: OCPP2_0_1.VariableType, stationId?: string): Promise<[Component, Variable]>;
|
|
20
|
+
findOrCreateEvseAndComponent(tenantId: number, componentType: OCPP2_0_1.ComponentType, stationId?: string): Promise<Component>;
|
|
21
|
+
createOrUpdateByGetVariablesResultAndStationId(tenantId: number, getVariablesResult: OCPP2_0_1.GetVariableResultType[], stationId: string, isoTimestamp: string): Promise<VariableAttribute[]>;
|
|
22
|
+
createOrUpdateBySetVariablesDataAndStationId(tenantId: number, setVariablesData: OCPP2_0_1.SetVariableDataType[], stationId: string, isoTimestamp: string): Promise<VariableAttribute[]>;
|
|
23
|
+
updateResultByStationId(tenantId: number, result: OCPP2_0_1.SetVariableResultType, stationId: string, isoTimestamp: string): Promise<VariableAttribute | undefined>;
|
|
24
|
+
readAllSetVariableByStationId(tenantId: number, stationId: string): Promise<OCPP2_0_1.SetVariableDataType[]>;
|
|
25
|
+
readAllByQuerystring(tenantId: number, query: VariableAttributeQuerystring): Promise<VariableAttribute[]>;
|
|
26
|
+
existByQuerystring(tenantId: number, query: VariableAttributeQuerystring): Promise<number>;
|
|
27
|
+
deleteAllByQuerystring(tenantId: number, query: VariableAttributeQuerystring): Promise<VariableAttribute[]>;
|
|
28
|
+
findComponentAndVariable(tenantId: number, componentType: OCPP2_0_1.ComponentType, variableType: OCPP2_0_1.VariableType): Promise<[Component | undefined, Variable | undefined]>;
|
|
29
|
+
findEvseByIdAndConnectorId(tenantId: number, id: number, connectorId: number | null): Promise<EvseType | undefined>;
|
|
30
|
+
findVariableCharacteristicsByVariableNameAndVariableInstance(tenantId: number, variableName: string, variableInstance: string | null): Promise<VariableCharacteristics | undefined>;
|
|
31
|
+
/**
|
|
32
|
+
* Private Methods
|
|
33
|
+
*/
|
|
34
|
+
private createSetVariableDataType;
|
|
35
|
+
private constructQuery;
|
|
36
|
+
}
|