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 }