Document convective outlook endpoints

This commit is contained in:
2026-06-11 15:46:00 +00:00
parent e897ae52df
commit 993621e3b3
7 changed files with 228 additions and 20 deletions

View File

@@ -37,6 +37,7 @@ Postgres owns persistence, backup, restore, and availability.
| Forecast discussion | `forecast_discussions`, `forecast_discussion_key_messages` |
| Weather story run | `weather_story_runs`, `weather_stories` |
| Latest weather story | `weather_stories` |
| Convective outlook run | `outlook_runs`, `outlooks` |
## Latest Row Selection
@@ -52,6 +53,7 @@ Latest parent resources use these ordering rules:
- weather story runs: `as_of DESC, event_emitted_at DESC`;
- latest individual weather story: `updated_at DESC, as_of DESC,
story_order ASC, story_index ASC`.
- convective outlook runs: `as_of DESC, event_emitted_at DESC`.
Current conditions aggregate `observations` rows where `observed_at` is inside
the application-provided observation window.
@@ -65,7 +67,8 @@ Child rows are loaded separately and attached in stored order:
- alert references: `alert_index ASC, reference_index ASC`;
- forecast periods: `period_index ASC`;
- forecast discussion key messages: `message_index ASC`;
- weather stories for a run: `story_index ASC`.
- weather stories for a run: `story_index ASC`;
- outlooks for a run: `outlook_index ASC`.
## Columns Read
@@ -148,6 +151,21 @@ routes.
`description`, `alt_text`, `priority`, `story_order`, `download_url`,
`run_event_id`, and `as_of`.
### `outlook_runs`
`event_id`, `location_id`, `location_name`, `latitude`, `longitude`, `as_of`,
`issued_at`, and `event_emitted_at`.
### `outlooks`
`outlook_index`, `outlook_id`, `provider`, `product`, `day`, `outlook_type`,
`label`, `label_text`, `severity_rank`, `valid_from`, `valid_to`, `issued_at`,
`expires_at`, `forecaster`, `headline`, `summary`, `discussion`, `source_url`,
`image_url`, `contains_location`, `geometry_json`, and `run_event_id`.
`geometry_json` is copied into response GeoJSON without parsing or
reserializing. It must contain valid JSON.
## Nullability and Time Assumptions
The repository scans nullable columns with `sql.Null*` types and maps them to