build(deps-dev): bump tsx from 4.7.1 to 4.7.2
[e-mobility-charging-stations-simulator.git] / src / types / AutomaticTransactionGenerator.ts
index 83e88c68cfc3ad9588efc85951c3bb651aaf149a..2ff04c09096a42fcc8e33b2a8bb937fa84fd4cc8 100644 (file)
@@ -1,28 +1,44 @@
-export interface AutomaticTransactionGeneratorConfiguration {
-  enable: boolean;
-  minDuration: number;
-  maxDuration: number;
-  minDelayBetweenTwoTransactions: number;
-  maxDelayBetweenTwoTransactions: number;
-  probabilityOfStart: number;
-  stopAfterHours: number;
-  stopOnConnectionFailure: boolean;
-  requireAuthorize?: boolean;
+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;
-  authorizeRequests?: number;
-  acceptedAuthorizeRequests?: number;
-  rejectedAuthorizeRequests?: number;
-  startTransactionRequests?: number;
-  acceptedStartTransactionRequests?: number;
-  rejectedStartTransactionRequests?: number;
-  stopTransactionRequests?: number;
-  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[]
 }