53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
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
|
|
}
|