chore(simulator): apply dependencies update
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
index f5a0206da23247bde4805f7ce87b7f2316027bb4..f0a58013d275f9adec5aa0c4d6384d76022c0a7c 100644 (file)
@@ -1,8 +1,14 @@
-import { WorkerData, WorkerMessage, WorkerMessageEvents } from './Worker';
+import type { WebSocket } from 'ws';
 
-import { JsonType } from './JsonType';
+import type { ChargingStationAutomaticTransactionGeneratorConfiguration } 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 JsonType {
+export interface ChargingStationWorkerOptions extends JsonObject {
   elementStartDelay?: number;
 }
 
@@ -12,22 +18,37 @@ export interface ChargingStationWorkerData extends WorkerData {
   chargingStationWorkerOptions?: ChargingStationWorkerOptions;
 }
 
-enum InternalChargingStationWorkerMessageEvents {
+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[];
+  automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration;
+}
+
+enum ChargingStationMessageEvents {
   STARTED = 'started',
   STOPPED = 'stopped',
+  UPDATED = 'updated',
   PERFORMANCE_STATISTICS = 'performanceStatistics',
 }
 
-export type ChargingStationWorkerMessageEvents =
-  | WorkerMessageEvents
-  | InternalChargingStationWorkerMessageEvents;
-
 export const ChargingStationWorkerMessageEvents = {
   ...WorkerMessageEvents,
-  ...InternalChargingStationWorkerMessageEvents,
-};
+  ...ChargingStationMessageEvents,
+} as const;
+export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents;
+
+export type ChargingStationWorkerMessageData = ChargingStationData | Statistics;
 
-export interface ChargingStationWorkerMessage
-  extends Omit<WorkerMessage<ChargingStationWorkerData>, 'id'> {
+export type ChargingStationWorkerMessage<T extends ChargingStationWorkerMessageData> = Omit<
+  WorkerMessage<T>,
+  'id'
+> & {
   id: ChargingStationWorkerMessageEvents;
-}
+};