feat: save connectors/evses map in charging station configuration file
[e-mobility-charging-stations-simulator.git] / src / charging-station / MessageChannelUtils.ts
index 9bf283d5e9e7330c98fac544e16da12eebfb93f8..28bfa8c6b89cf9fe1382594cf2bcbf07b85867bd 100644 (file)
@@ -1,10 +1,10 @@
+import type { ChargingStation } from './internal';
 import {
-  ChargingStationData,
-  ChargingStationWorkerMessage,
+  type ChargingStationData,
+  type ChargingStationWorkerMessage,
   ChargingStationWorkerMessageEvents,
-} from '../types/ChargingStationWorker';
-import type { Statistics } from '../types/Statistics';
-import type ChargingStation from './ChargingStation';
+  type Statistics,
+} from '../types';
 
 export class MessageChannelUtils {
   private constructor() {
@@ -15,7 +15,7 @@ export class MessageChannelUtils {
     chargingStation: ChargingStation
   ): ChargingStationWorkerMessage<ChargingStationData> {
     return {
-      id: ChargingStationWorkerMessageEvents.STARTED,
+      id: ChargingStationWorkerMessageEvents.started,
       data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation),
     };
   }
@@ -24,7 +24,7 @@ export class MessageChannelUtils {
     chargingStation: ChargingStation
   ): ChargingStationWorkerMessage<ChargingStationData> {
     return {
-      id: ChargingStationWorkerMessageEvents.STOPPED,
+      id: ChargingStationWorkerMessageEvents.stopped,
       data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation),
     };
   }
@@ -33,7 +33,7 @@ export class MessageChannelUtils {
     chargingStation: ChargingStation
   ): ChargingStationWorkerMessage<ChargingStationData> {
     return {
-      id: ChargingStationWorkerMessageEvents.UPDATED,
+      id: ChargingStationWorkerMessageEvents.updated,
       data: MessageChannelUtils.buildChargingStationDataPayload(chargingStation),
     };
   }
@@ -42,7 +42,7 @@ export class MessageChannelUtils {
     statistics: Statistics
   ): ChargingStationWorkerMessage<Statistics> {
     return {
-      id: ChargingStationWorkerMessageEvents.PERFORMANCE_STATISTICS,
+      id: ChargingStationWorkerMessageEvents.performanceStatistics,
       data: statistics,
     };
   }
@@ -51,14 +51,24 @@ export class MessageChannelUtils {
     chargingStation: ChargingStation
   ): ChargingStationData {
     return {
-      stationInfo: chargingStation.stationInfo,
       started: chargingStation.started,
-      wsState: chargingStation?.wsConnection?.readyState,
-      bootNotificationResponse: chargingStation.bootNotificationResponse,
+      stationInfo: chargingStation.stationInfo,
       connectors: [...chargingStation.connectors.values()].map(
         // eslint-disable-next-line @typescript-eslint/no-unused-vars
         ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest
       ),
+      evses: [...chargingStation.evses.values()].map((evseStatus) => {
+        return {
+          ...evseStatus,
+          connectors: [...evseStatus.connectors.values()].map(
+            // eslint-disable-next-line @typescript-eslint/no-unused-vars
+            ({ transactionSetInterval, ...connectorStatusRest }) => connectorStatusRest
+          ),
+        };
+      }),
+      ocppConfiguration: chargingStation.ocppConfiguration,
+      wsState: chargingStation?.wsConnection?.readyState,
+      bootNotificationResponse: chargingStation.bootNotificationResponse,
       ...(chargingStation.automaticTransactionGenerator && {
         automaticTransactionGenerator: {
           automaticTransactionGenerator: