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