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