-import { CircularArray } from '../utils/CircularArray';
-import { URL } from 'url';
+import type { IncomingRequestCommand, RequestCommand } from './ocpp/Requests.js'
+import type { CircularArray } from '../utils/index.js'
+import type { WorkerData } from '../worker/index.js'
-export interface StatisticsData {
- countRequest: number;
- countResponse: number;
- countError: number;
- countTimeMeasurement: number;
- timeMeasurementSeries: CircularArray<number>;
- currentTimeMeasurement: number;
- minTimeMeasurement: number;
- maxTimeMeasurement: number;
- totalTimeMeasurement: number;
- avgTimeMeasurement: number;
- medTimeMeasurement: number;
- ninetyFiveThPercentileTimeMeasurement: number;
- stdDevTimeMeasurement: number;
+export interface TimestampedData {
+ timestamp: number
+ value: number
}
-export default interface Statistics {
- id: string;
- URI: string;
- createdAt: Date;
- lastUpdatedAt?: Date;
- statisticsData: Record<string, StatisticsData>;
-}
+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, StatisticsData>
+} & WorkerData