1// Copyright (C) 2021 Storj Labs, Inc.
2// See LICENSE for copying information.
3
4/**
5 * Stats encapsulates node reputation data.
6 */
7export class Stats {
8    public constructor(
9        public nodeId: string,
10        public nodeName: string,
11        public audit: Audit,
12        public onlineScore: number,
13        public disqualifiedAt: Date,
14        public suspendedAt: Date,
15        public offlineSuspendedAt: Date,
16        public offlineUnderReviewAt: Date,
17        public updatedAt: Date,
18        public joinedAt: Date,
19    ) {}
20}
21
22/**
23 * Audit contains audit reputation metrics.
24 */
25export class Audit {
26    public constructor(
27        public totalCount: number,
28        public successCount: number,
29        public alpha: number,
30        public beta: number,
31        public unknownAlpha: number,
32        public unknownBeta: number,
33        public score: number,
34        public suspensionScore: number,
35        public history: AuditWindow[],
36    ) {}
37}
38
39/**
40 * AuditWindow contains audit count for particular time frame.
41 */
42export class AuditWindow {
43    public constructor(
44        public windowStart: Date,
45        public totalCount: number,
46        public onlineCount: number,
47    ) {}
48}
49