Vue UI + UI server
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
index 945d3d207d00865674b9fc7346f3d81a27d57a5b..0caf1a81b082b491979cc5d8b16752fa32b14b07 100644 (file)
@@ -1,3 +1,5 @@
+import ChargingStationInfo from './ChargingStationInfo';
+import { ConnectorStatus } from './ConnectorStatus';
 import { JsonObject } from './JsonType';
 import { WorkerData, WorkerMessage, WorkerMessageEvents } from './Worker';
 
@@ -11,22 +13,27 @@ export interface ChargingStationWorkerData extends WorkerData {
   chargingStationWorkerOptions?: ChargingStationWorkerOptions;
 }
 
-enum InternalChargingStationWorkerMessageEvents {
+export interface ChargingStationData extends WorkerData {
+  hashId: string;
+  stationInfo: ChargingStationInfo;
+  connectors: ConnectorStatus[];
+}
+
+enum ChargingStationMessageEvents {
   STARTED = 'started',
   STOPPED = 'stopped',
+  UPDATED = 'updated',
   PERFORMANCE_STATISTICS = 'performanceStatistics',
 }
 
-export type ChargingStationWorkerMessageEvents =
-  | WorkerMessageEvents
-  | InternalChargingStationWorkerMessageEvents;
+export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents;
 
 export const ChargingStationWorkerMessageEvents = {
   ...WorkerMessageEvents,
-  ...InternalChargingStationWorkerMessageEvents,
+  ...ChargingStationMessageEvents,
 };
 
-export interface ChargingStationWorkerMessage
-  extends Omit<WorkerMessage<ChargingStationWorkerData>, 'id'> {
+export interface ChargingStationWorkerMessage<T extends WorkerData>
+  extends Omit<WorkerMessage<T>, 'id'> {
   id: ChargingStationWorkerMessageEvents;
 }