build(deps-dev): apply updates
[e-mobility-charging-stations-simulator.git] / src / types / AutomaticTransactionGenerator.ts
index e7fe178fba29940b5646c748100adcf29472e484..68fd2fe3800b16b5dd14c7497ab5b99223400a74 100644 (file)
@@ -1,9 +1,42 @@
+export enum IdTagDistribution {
+  RANDOM = 'random',
+  ROUND_ROBIN = 'round-robin',
+  CONNECTOR_AFFINITY = 'connector-affinity',
+}
+
+export interface AutomaticTransactionGeneratorConfiguration {
+  enable: boolean
+  minDuration: number
+  maxDuration: number
+  minDelayBetweenTwoTransactions: number
+  maxDelayBetweenTwoTransactions: number
+  probabilityOfStart: number
+  stopAfterHours: number
+  stopOnConnectionFailure: boolean
+  requireAuthorize?: boolean
+  idTagDistribution?: IdTagDistribution
+}
+
 export interface Status {
-  start?: boolean;
-  startDate?: Date;
-  lastRunDate?: Date;
-  stopDate?: Date;
-  stoppedDate?: Date;
-  skippedConsecutiveTransactions?: number;
-  skippedTransactions?: number;
+  start: boolean
+  startDate?: Date
+  lastRunDate?: Date
+  stopDate?: Date
+  stoppedDate?: Date
+  authorizeRequests?: number
+  acceptedAuthorizeRequests?: number
+  rejectedAuthorizeRequests?: number
+  startTransactionRequests?: number
+  acceptedStartTransactionRequests?: number
+  rejectedStartTransactionRequests?: number
+  stopTransactionRequests?: number
+  acceptedStopTransactionRequests?: number
+  rejectedStopTransactionRequests?: number
+  skippedConsecutiveTransactions?: number
+  skippedTransactions?: number
+}
+
+export interface ChargingStationAutomaticTransactionGeneratorConfiguration {
+  automaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration
+  automaticTransactionGeneratorStatuses?: Status[]
 }