package report import ( "gitea.maximumdirect.net/eric/weatherreporter/internal/module" "gitea.maximumdirect.net/eric/weatherreporter/internal/timeutil" ) func dailyTodayDefinition() Definition { return Definition{ ID: DailyToday, Name: "Daily Report", PromptID: "weather.daily_report", ComparisonStrategy: CompareSameValidDate, ArtifactGroup: "daily", BatchOutputName: "daily.md", Generated: true, CompatiblePriorIDs: []ID{DailyToday, DailyTomorrow}, Modules: dailyTodayModules(), Morning: true, resolve: resolveDailyToday, } } func dailyTomorrowDefinition() Definition { return Definition{ ID: DailyTomorrow, Name: "Tomorrow Planning Brief", PromptID: "weather.daily_report", ComparisonStrategy: CompareSameValidDate, ArtifactGroup: "daily", BatchOutputName: "tomorrow.md", Generated: true, CompatiblePriorIDs: []ID{DailyToday, DailyTomorrow}, Modules: dailyTomorrowModules(), Evening: true, resolve: resolveDailyTomorrow, } } func dailyTodayModules() []module.ConfigItem { return moduleItems( module.Metadata, module.CurrentConditions, module.NarrativeForecast, module.DerivedDailySummary, module.DerivedDaypartSummaries, module.PrecipTiming, module.AlertDigest, module.AreaForecastDiscussion, module.WeatherStory, module.OutdoorWindows, module.HourlyForecast, ) } func dailyTomorrowModules() []module.ConfigItem { return moduleItems( module.Metadata, module.CurrentConditions, module.NarrativeForecast, module.DerivedDailySummary, module.DerivedDaypartSummaries, module.PrecipTiming, module.AlertDigest, module.AreaForecastDiscussion, module.WeatherStory, module.OutdoorWindows, module.TomorrowPlanning, module.HourlyForecast, ) } func resolveDailyToday(req ResolveRequest) (timeutil.Period, error) { if !req.Date.IsZero() { return timeutil.CivilDay(req.Date, req.Location), nil } return timeutil.CivilDay(req.Now, req.Location), nil } func resolveDailyTomorrow(req ResolveRequest) (timeutil.Period, error) { return timeutil.CivilDay(req.Now.In(req.Location).AddDate(0, 0, 1), req.Location), nil }