package model import "time" // ForecastDiscussionProduct distinguishes the discussion bulletin family. // // Today weatherfeeder only normalizes Area Forecast Discussion (AFD) products, // but this remains a distinct type so additional discussion-like products can be // added without changing the payload field type. type ForecastDiscussionProduct string const ( ForecastDiscussionProductAFD ForecastDiscussionProduct = "afd" ) // WeatherForecastDiscussion is a canonical issued discussion bulletin for an NWS office. // // Unlike WeatherForecastRun, this is authored narrative text rather than a sequence // of forecast periods. type WeatherForecastDiscussion struct { OfficeID string `json:"officeId,omitempty"` OfficeName string `json:"officeName,omitempty"` Product ForecastDiscussionProduct `json:"product"` IssuedAt time.Time `json:"issuedAt"` UpdatedAt *time.Time `json:"updatedAt,omitempty"` KeyMessages []string `json:"keyMessages,omitempty"` ShortTerm *WeatherForecastDiscussionSection `json:"shortTerm,omitempty"` LongTerm *WeatherForecastDiscussionSection `json:"longTerm,omitempty"` } // WeatherForecastDiscussionSection is a fixed prose section within a discussion bulletin. type WeatherForecastDiscussionSection struct { Qualifier string `json:"qualifier,omitempty"` IssuedAt *time.Time `json:"issuedAt,omitempty"` Text string `json:"text,omitempty"` }