stillbox/pkg/calls/stats.go

47 lines
930 B
Go
Raw Normal View History

2025-02-14 12:50:05 -05:00
package calls
import (
"errors"
"dynatron.me/x/stillbox/internal/jsontypes"
)
type Stats struct {
Stats []Stat `json:"stats"`
Interval StatsInterval `json:"interval"`
}
var (
ErrInvalidInterval = errors.New("invalid interval")
)
func (s *Stats) GetResourceName() string {
return "CallStats"
}
type StatsInterval string
const (
IntervalMinute StatsInterval = "minute"
IntervalHour StatsInterval = "hour"
IntervalDay StatsInterval = "day"
IntervalWeek StatsInterval = "week"
IntervalMonth StatsInterval = "month"
IntervalQuarter StatsInterval = "quarter"
IntervalYear StatsInterval = "year"
)
func (si StatsInterval) IsValid() bool {
switch si {
case IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter, IntervalYear:
return true
}
return false
}
type Stat struct {
Count int64 `json:"count"`
Time jsontypes.Time `json:"time"`
}