package briefing import "gitea.maximumdirect.net/eric/weatherreporter/internal/module" type OutdoorWindowsModule struct { Best *OutdoorWindowModule `json:"best,omitempty"` Worst *OutdoorWindowModule `json:"worst,omitempty"` } type OutdoorWindowModule struct { Daypart string `json:"daypart"` Start string `json:"start"` End string `json:"end"` Reasons []string `json:"reasons,omitempty"` Score float64 `json:"score"` } func buildOutdoorWindowsModule(ctx ModuleContext, _ any) (*module.Output, error) { windows := buildOutdoorWindows(ctx.Derived.DaypartSummaries) value := OutdoorWindowsModule{ Best: outdoorWindowValue(windows.Best), Worst: outdoorWindowValue(windows.Worst), } return &module.Output{ID: module.OutdoorWindows, StanzaName: "outdoor_windows", Value: value}, nil } func outdoorWindowValue(window *OutdoorWindow) *OutdoorWindowModule { if window == nil { return nil } return &OutdoorWindowModule{ Daypart: window.Daypart, Start: window.Start, End: window.End, Reasons: append([]string(nil), window.Reasons...), Score: window.Score, } }