feat: allow to provision number of stations by template
[e-mobility-charging-stations-simulator.git] / src / types / Statistics.ts
index 5f22cdafd7347c774a9b3472fdaa1b7bb724089f..4c03dd9d73c62c06f35d432bbc18cf9be62ec082 100644 (file)
@@ -1,33 +1,41 @@
-import type { IncomingRequestCommand, RequestCommand } from './internal';
-import type { CircularArray } from '../utils';
-import type { WorkerData } from '../worker';
+import type { CircularArray } from '../utils/index.js'
+import type { WorkerData } from '../worker/index.js'
+import type { IncomingRequestCommand, RequestCommand } from './ocpp/Requests.js'
 
-export type TimeSeries = {
-  timestamp: number;
-  value: number;
-};
+export interface TimestampedData {
+  timestamp: number
+  value: number
+}
 
-type StatisticsData = {
-  countRequest: number;
-  countResponse: number;
-  countError: number;
-  countTimeMeasurement: number;
-  timeMeasurementSeries: CircularArray<TimeSeries>;
-  currentTimeMeasurement: number;
-  minTimeMeasurement: number;
-  maxTimeMeasurement: number;
-  totalTimeMeasurement: number;
-  avgTimeMeasurement: number;
-  medTimeMeasurement: number;
-  ninetyFiveThPercentileTimeMeasurement: number;
-  stdDevTimeMeasurement: number;
-};
+export type StatisticsData = Partial<{
+  requestCount: number
+  responseCount: number
+  errorCount: number
+  timeMeasurementCount: number
+  measurementTimeSeries: CircularArray<TimestampedData>
+  currentTimeMeasurement: number
+  minTimeMeasurement: number
+  maxTimeMeasurement: number
+  totalTimeMeasurement: number
+  avgTimeMeasurement: number
+  medTimeMeasurement: number
+  ninetyFiveThPercentileTimeMeasurement: number
+  stdDevTimeMeasurement: number
+}>
 
-export type Statistics = {
-  id: string;
-  name: string;
-  uri: string;
-  createdAt: Date;
-  updatedAt?: Date;
-  statisticsData: Map<string | RequestCommand | IncomingRequestCommand, Partial<StatisticsData>>;
-} & WorkerData;
+export interface Statistics extends WorkerData {
+  id: string
+  name: string
+  uri: string
+  createdAt: Date
+  updatedAt?: Date
+  statisticsData: Map<string | RequestCommand | IncomingRequestCommand, StatisticsData>
+}
+
+export interface TemplateStatistics {
+  configured: number
+  provisioned: number
+  added: number
+  started: number
+  indexes: Set<number>
+}