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", PromptVersion: "2.1.0", TemplateID: "hourly", GeneratedTextSchemaID: "hourly", GeneratedTextRepairAttempts: 1, ArtifactGroup: "hourly", OutputName: "hourly.md", DistributorPathTemplates: []string{ "hourly/index.md", }, 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}, areaForecastDiscussionItem("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 }