65c431404a44d2e842f56c12784a9613a49ea4e3
[e-mobility-charging-stations-simulator.git] / src / types / WorkerBroadcastChannel.ts
1 import type { RequestPayload, ResponsePayload } from './UIProtocol';
2
3 export type BroadcastChannelRequest = [
4 string,
5 BroadcastChannelProcedureName,
6 BroadcastChannelRequestPayload
7 ];
8 export type BroadcastChannelResponse = [string, BroadcastChannelResponsePayload];
9
10 export enum BroadcastChannelProcedureName {
11 START_CHARGING_STATION = 'startChargingStation',
12 STOP_CHARGING_STATION = 'stopChargingStation',
13 OPEN_CONNECTION = 'openConnection',
14 CLOSE_CONNECTION = 'closeConnection',
15 START_TRANSACTION = 'startTransaction',
16 STOP_TRANSACTION = 'stopTransaction',
17 START_AUTOMATIC_TRANSACTION_GENERATOR = 'startAutomaticTransactionGenerator',
18 STOP_AUTOMATIC_TRANSACTION_GENERATOR = 'stopAutomaticTransactionGenerator',
19 }
20
21 interface BaseBroadcastChannelRequestPayload extends Omit<RequestPayload, 'hashId' | 'hashIds'> {
22 connectorId?: number;
23 transactionId?: number;
24 idTag?: string;
25 }
26
27 interface HashIdBroadcastChannelRequestPayload extends BaseBroadcastChannelRequestPayload {
28 hashId: string;
29 }
30
31 interface HashIdsBroadcastChannelRequestPayload extends BaseBroadcastChannelRequestPayload {
32 hashIds: string[];
33 }
34
35 export type BroadcastChannelRequestPayload =
36 | HashIdBroadcastChannelRequestPayload
37 | HashIdsBroadcastChannelRequestPayload;
38
39 export interface BroadcastChannelResponsePayload extends ResponsePayload {
40 hashId: string;
41 }
42
43 export type MessageEvent = { data: BroadcastChannelRequest | BroadcastChannelResponse };