mirror of
https://github.com/sstent/go-garth.git
synced 2026-02-14 03:11:59 +00:00
sync
This commit is contained in:
40
garth/stats/hrv_weekly.go
Normal file
40
garth/stats/hrv_weekly.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package stats
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
const WEEKLY_HRV_PATH = "/wellness-service/wellness/weeklyHrv"
|
||||
|
||||
type WeeklyHRV struct {
|
||||
CalendarDate time.Time `json:"calendar_date"`
|
||||
AverageHRV float64 `json:"average_hrv"`
|
||||
MaxHRV float64 `json:"max_hrv"`
|
||||
MinHRV float64 `json:"min_hrv"`
|
||||
HRVQualifier string `json:"hrv_qualifier"`
|
||||
WellnessDataDaysCount int `json:"wellness_data_days_count"`
|
||||
BaseStats
|
||||
}
|
||||
|
||||
func NewWeeklyHRV() *WeeklyHRV {
|
||||
return &WeeklyHRV{
|
||||
BaseStats: BaseStats{
|
||||
Path: WEEKLY_HRV_PATH + "/{end}/{period}",
|
||||
PageSize: 52,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (w *WeeklyHRV) Validate() error {
|
||||
if w.CalendarDate.IsZero() {
|
||||
return errors.New("calendar_date is required")
|
||||
}
|
||||
if w.AverageHRV < 0 || w.MaxHRV < 0 || w.MinHRV < 0 {
|
||||
return errors.New("HRV values must be non-negative")
|
||||
}
|
||||
if w.MaxHRV < w.MinHRV {
|
||||
return errors.New("max_hrv must be greater than min_hrv")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user