package report import ( "time" "gitea.maximumdirect.net/eric/weatherreporter/internal/module" "gitea.maximumdirect.net/eric/weatherreporter/internal/timeutil" ) const hourlyReportHours = 6 func hourlyDefinition() Definition { return Definition{ ID: Hourly, Name: "Hourly Report", PromptID: "weather.hourly_generated_text", GenerationMode: GenerationModeGeneratedTextTemplate, TemplateID: "hourly", GeneratedTextSchemaID: "hourly", ComparisonStrategy: CompareRollingWindow, ArtifactGroup: "hourly", BatchOutputName: "hourly.md", DistributorPathTemplates: []string{ "hourly/index.md", }, Generated: true, CompatiblePriorIDs: []ID{Hourly}, Modules: hourlyModules(), resolve: resolveHourly, } } func hourlyModules() []module.ConfigItem { return []module.ConfigItem{ {ID: module.Metadata}, {ID: module.CurrentConditions}, {ID: module.HourlyForecast}, {ID: module.PrecipTiming}, {ID: module.AlertDigest}, {ID: module.SPCConvectiveOutlooks}, { ID: module.AreaForecastDiscussion, Options: module.AreaForecastDiscussionOptions{ Sections: []string{"key_messages", "short_term"}, }, }, {ID: module.SPCConvectiveDiscussion}, {ID: module.WeatherStory}, } } func resolveHourly(req ResolveRequest) (timeutil.Period, error) { localNow := req.Now.In(req.Location) return timeutil.Period{ Start: localNow, End: localNow.Add(hourlyReportHours * time.Hour), }, nil }