perf: reduce OCPPUtils memory usage
[e-mobility-charging-stations-simulator.git] / src / types / Statistics.ts
index 7c099bc96eaf29389f66650baa0219360195df19..60b2379b77577757f4f5d883e828662645acb8f1 100644 (file)
@@ -1,21 +1,33 @@
-import { CircularArray } from '../utils/CircularArray';
+import type { IncomingRequestCommand, RequestCommand } from './ocpp/Requests';
+import type { CircularArray } from '../utils';
+import type { WorkerData } from '../worker';
 
-export interface StatisticsData {
-  countRequest: number;
-  countResponse: number;
-  countError: number;
-  countTimeMeasurement: number;
-  timeMeasurementSeries: CircularArray<number>;
+export interface TimestampedData {
+  timestamp: number;
+  value: 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 default interface Statistics {
+export type Statistics = {
   id: string;
-  statisticsData: Record<string, StatisticsData>;
-}
+  name: string;
+  uri: string;
+  createdAt: Date;
+  updatedAt?: Date;
+  statisticsData: Map<string | RequestCommand | IncomingRequestCommand, StatisticsData>;
+} & WorkerData;