build(deps-dev): apply updates
[e-mobility-charging-stations-simulator.git] / src / types / Statistics.ts
1 import type { CircularBuffer } from 'mnemonist'
2
3 import type { WorkerData } from '../worker/index.js'
4 import type { IncomingRequestCommand, RequestCommand } from './ocpp/Requests.js'
5
6 export interface TimestampedData {
7 timestamp: number
8 value: number
9 }
10
11 export type StatisticsData = Partial<{
12 requestCount: number
13 responseCount: number
14 errorCount: number
15 timeMeasurementCount: number
16 measurementTimeSeries: CircularBuffer<TimestampedData> | TimestampedData[]
17 currentTimeMeasurement: number
18 minTimeMeasurement: number
19 maxTimeMeasurement: number
20 totalTimeMeasurement: number
21 avgTimeMeasurement: number
22 medTimeMeasurement: number
23 ninetyFiveThPercentileTimeMeasurement: number
24 stdDevTimeMeasurement: number
25 }>
26
27 export interface Statistics extends WorkerData {
28 id: string
29 name: string
30 uri: string
31 createdAt: Date
32 updatedAt?: Date
33 statisticsData: Map<string | RequestCommand | IncomingRequestCommand, StatisticsData>
34 }
35
36 export interface TemplateStatistics {
37 configured: number
38 provisioned: number
39 added: number
40 started: number
41 indexes: Set<number>
42 }