39 lines
873 B
Go
39 lines
873 B
Go
package models
|
|
|
|
type ReportFilter struct {
|
|
Date []string `json:"date"`
|
|
Groups []uint `json:"groupIds,omitempty"`
|
|
Name []string `json:"name,omitempty"`
|
|
}
|
|
|
|
type Report struct {
|
|
Data map[string]*Data `json:"data,omitempty"`
|
|
Attendees []*Member `json:"attendees,omitempty"`
|
|
NonAttendees []*Member `json:"nonAttendees,omitempty"`
|
|
}
|
|
|
|
type Data struct {
|
|
Events int `json:"events"`
|
|
Minimal int `json:"minimal"`
|
|
Average int `json:"average"`
|
|
Maximal int `json:"maximal"`
|
|
averageCount int `json:"-"`
|
|
}
|
|
|
|
func AddNewData(value int) *Data {
|
|
return &Data{Minimal: value}
|
|
}
|
|
|
|
func (d *Data) AddData(value int) {
|
|
d.Events += 1
|
|
if d.Minimal > value {
|
|
d.Minimal = value
|
|
}
|
|
if d.Maximal < value {
|
|
d.Maximal = value
|
|
}
|
|
|
|
d.averageCount += value
|
|
d.Average = d.averageCount / d.Events
|
|
}
|