refactor: cleanup charging profiles handling code
[e-mobility-charging-stations-simulator.git] / src / types / AutomaticTransactionGenerator.ts
1 import type { JsonObject } from './JsonType.js'
2
3 export enum IdTagDistribution {
4 RANDOM = 'random',
5 ROUND_ROBIN = 'round-robin',
6 CONNECTOR_AFFINITY = 'connector-affinity'
7 }
8
9 export interface AutomaticTransactionGeneratorConfiguration extends JsonObject {
10 enable: boolean
11 minDuration: number
12 maxDuration: number
13 minDelayBetweenTwoTransactions: number
14 maxDelayBetweenTwoTransactions: number
15 probabilityOfStart: number
16 stopAfterHours: number
17 stopAbsoluteDuration: boolean
18 requireAuthorize?: boolean
19 idTagDistribution?: IdTagDistribution
20 }
21
22 export interface Status {
23 start: boolean
24 startDate?: Date
25 lastRunDate?: Date
26 stopDate?: Date
27 stoppedDate?: Date
28 authorizeRequests: number
29 acceptedAuthorizeRequests: number
30 rejectedAuthorizeRequests: number
31 startTransactionRequests: number
32 acceptedStartTransactionRequests: number
33 rejectedStartTransactionRequests: number
34 stopTransactionRequests: number
35 acceptedStopTransactionRequests: number
36 rejectedStopTransactionRequests: number
37 skippedConsecutiveTransactions: number
38 skippedTransactions: number
39 }
40
41 export interface ChargingStationAutomaticTransactionGeneratorConfiguration {
42 automaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration
43 automaticTransactionGeneratorStatuses?: Status[]
44 }