d218e08a3067917daa1a321e11281eef9c4affbd
[e-mobility-charging-stations-simulator.git] / src / types / ConfigurationData.ts
1 import { ServerOptions } from 'ws';
2 import { StorageType } from './Storage';
3 import type { WorkerChoiceStrategy } from 'poolifier';
4 import { WorkerProcessType } from './Worker';
5
6 export interface StationTemplateURL {
7 file: string;
8 numberOfStations: number;
9 }
10
11 export interface UIWebSocketServerConfiguration {
12 enabled?: boolean;
13 options?: ServerOptions;
14 }
15
16 export interface StorageConfiguration {
17 enabled?: boolean;
18 type?: StorageType;
19 URI?: string;
20 }
21
22 export default interface ConfigurationData {
23 supervisionURLs?: string[];
24 stationTemplateURLs: StationTemplateURL[];
25 uiWebSocketServer?: UIWebSocketServerConfiguration;
26 performanceStorage?: StorageConfiguration;
27 autoReconnectMaxRetries?: number;
28 distributeStationsToTenantsEqually?: boolean;
29 workerProcess?: WorkerProcessType;
30 workerStartDelay?: number;
31 workerPoolMinSize?: number;
32 workerPoolMaxSize?: number;
33 workerPoolStrategy?: WorkerChoiceStrategy;
34 chargingStationsPerWorker?: number;
35 logStatisticsInterval?: number;
36 logFormat?: string;
37 logLevel?: string;
38 logRotate?: boolean;
39 logMaxFiles?: number;
40 logFile?: string;
41 logErrorFile?: string;
42 logConsole?: boolean;
43 }