Vue UI + UI server
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationWorker.ts
1 import ChargingStationInfo from './ChargingStationInfo';
2 import { ConnectorStatus } from './ConnectorStatus';
3 import { JsonObject } from './JsonType';
4 import { WorkerData, WorkerMessage, WorkerMessageEvents } from './Worker';
5
6 export interface ChargingStationWorkerOptions extends JsonObject {
7 elementStartDelay?: number;
8 }
9
10 export interface ChargingStationWorkerData extends WorkerData {
11 index: number;
12 templateFile: string;
13 chargingStationWorkerOptions?: ChargingStationWorkerOptions;
14 }
15
16 export interface ChargingStationData extends WorkerData {
17 hashId: string;
18 stationInfo: ChargingStationInfo;
19 connectors: ConnectorStatus[];
20 }
21
22 enum ChargingStationMessageEvents {
23 STARTED = 'started',
24 STOPPED = 'stopped',
25 UPDATED = 'updated',
26 PERFORMANCE_STATISTICS = 'performanceStatistics',
27 }
28
29 export type ChargingStationWorkerMessageEvents = WorkerMessageEvents | ChargingStationMessageEvents;
30
31 export const ChargingStationWorkerMessageEvents = {
32 ...WorkerMessageEvents,
33 ...ChargingStationMessageEvents,
34 };
35
36 export interface ChargingStationWorkerMessage<T extends WorkerData>
37 extends Omit<WorkerMessage<T>, 'id'> {
38 id: ChargingStationWorkerMessageEvents;
39 }