package report import ( "fmt" "gitea.maximumdirect.net/eric/weatherreporter/internal/module" "gitea.maximumdirect.net/eric/weatherreporter/internal/timeutil" ) func dailyDefinition() Definition { return Definition{ ID: Daily, Name: "Daily Report", PromptID: "weather.daily_generated_text", GenerationMode: GenerationModeGeneratedTextTemplate, TemplateID: "daily", GeneratedTextSchemaID: "daily", ComparisonStrategy: CompareSameValidDate, ArtifactGroup: "daily", BatchOutputName: "daily.md", Generated: true, CompatiblePriorIDs: []ID{Daily}, Modules: dailyModules(), resolve: resolveDaily, } } func dailyModules() []module.ConfigItem { return moduleItems( module.Metadata, module.CurrentConditions, module.NarrativeForecast, module.DerivedDailySummary, module.DerivedDaypartSummaries, module.PrecipTiming, module.AlertDigest, module.SPCConvectiveOutlooks, module.AreaForecastDiscussion, module.SPCConvectiveDiscussion, module.WeatherStory, module.OutdoorWindows, module.DailyPlanning, module.HourlyForecast, ) } func resolveDaily(req ResolveRequest) (timeutil.Period, error) { if req.Date.IsZero() { return timeutil.Period{}, fmt.Errorf("daily report requires an explicit date") } return timeutil.CivilDay(req.Date, req.Location), nil }