Align some types definition in UI
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
index f016d8ffba7f980cf4ddb77d6222a5c236005676..ec6e92b52bf1243ab4f1c77b13265b0ca2239a0a 100644 (file)
@@ -1,22 +1,52 @@
+import type { WebSocket } from 'ws';
+
+import type { Status } from './AutomaticTransactionGenerator';
+import type { ChargingStationInfo } from './ChargingStationInfo';
+import type { ConnectorStatus } from './ConnectorStatus';
+import type { JsonObject } from './JsonType';
+import type { BootNotificationResponse } from './ocpp/Responses';
+import type { Statistics } from './Statistics';
 import { WorkerData, WorkerMessage, WorkerMessageEvents } from './Worker';
 
+export interface ChargingStationWorkerOptions extends JsonObject {
+  elementStartDelay?: number;
+}
+
 export interface ChargingStationWorkerData extends WorkerData {
   index: number;
   templateFile: string;
+  chargingStationWorkerOptions?: ChargingStationWorkerOptions;
 }
 
-enum InternalChargingStationWorkerMessageEvents {
-  PERFORMANCE_STATISTICS = 'performanceStatistics'
+export interface ChargingStationData extends WorkerData {
+  stationInfo: ChargingStationInfo;
+  started: boolean;
+  wsState?:
+    | typeof WebSocket.CONNECTING
+    | typeof WebSocket.OPEN
+    | typeof WebSocket.CLOSING
+    | typeof WebSocket.CLOSED;
+  bootNotificationResponse: BootNotificationResponse;
+  connectors: ConnectorStatus[];
+  automaticTransactionGeneratorStatuses?: Status[];
 }
 
-export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | InternalChargingStationWorkerMessageEvents;
+enum ChargingStationMessageEvents {
+  STARTED = 'started',
+  STOPPED = 'stopped',
+  UPDATED = 'updated',
+  PERFORMANCE_STATISTICS = 'performanceStatistics',
+}
+
+export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents;
 
 export const ChargingStationWorkerMessageEvents = {
   ...WorkerMessageEvents,
-  ...InternalChargingStationWorkerMessageEvents
+  ...ChargingStationMessageEvents,
 };
 
+export type ChargingStationWorkerMessageData = ChargingStationData | Statistics;
 
-export interface ChargingStationWorkerMessage extends Omit<WorkerMessage, 'id'> {
+export type ChargingStationWorkerMessage<T extends WorkerData> = Omit<WorkerMessage<T>, 'id'> & {
   id: ChargingStationWorkerMessageEvents;
-}
+};