build(deps-dev): apply updates
[e-mobility-charging-stations-simulator.git] / src / types / AutomaticTransactionGenerator.ts
index e7fe178fba29940b5646c748100adcf29472e484..2ff04c09096a42fcc8e33b2a8bb937fa84fd4cc8 100644 (file)
@@ -1,9 +1,44 @@
+import type { JsonObject } from './JsonType.js'
+
+export enum IdTagDistribution {
+  RANDOM = 'random',
+  ROUND_ROBIN = 'round-robin',
+  CONNECTOR_AFFINITY = 'connector-affinity'
+}
+
+export interface AutomaticTransactionGeneratorConfiguration extends JsonObject {
+  enable: boolean
+  minDuration: number
+  maxDuration: number
+  minDelayBetweenTwoTransactions: number
+  maxDelayBetweenTwoTransactions: number
+  probabilityOfStart: number
+  stopAfterHours: number
+  stopAbsoluteDuration: 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[]
 }