46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
package spc
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
)
|
|
|
|
// RawConvectiveOutlookBundle is the provider payload shape for SPC convective
|
|
// outlook fetch bundles.
|
|
type RawConvectiveOutlookBundle struct {
|
|
LocationID string `json:"locationId,omitempty"`
|
|
LocationName string `json:"locationName,omitempty"`
|
|
Latitude float64 `json:"latitude"`
|
|
Longitude float64 `json:"longitude"`
|
|
FetchedAt time.Time `json:"fetchedAt"`
|
|
Products []RawOutlookProduct `json:"products"`
|
|
Discussions []RawDiscussionPage `json:"discussions"`
|
|
RSS *RawRSSFeed `json:"rss,omitempty"`
|
|
}
|
|
|
|
// RawOutlookProduct contains one fetched SPC GeoJSON product.
|
|
type RawOutlookProduct struct {
|
|
Key string `json:"key"`
|
|
Day int `json:"day"`
|
|
OutlookType string `json:"outlookType"`
|
|
URL string `json:"url"`
|
|
FetchedAt time.Time `json:"fetchedAt"`
|
|
Body json.RawMessage `json:"body"`
|
|
}
|
|
|
|
// RawDiscussionPage contains one fetched SPC print page.
|
|
type RawDiscussionPage struct {
|
|
Key string `json:"key"`
|
|
Day int `json:"day"`
|
|
URL string `json:"url"`
|
|
FetchedAt time.Time `json:"fetchedAt"`
|
|
Body string `json:"body"`
|
|
}
|
|
|
|
// RawRSSFeed contains optional fetched SPC RSS metadata.
|
|
type RawRSSFeed struct {
|
|
URL string `json:"url"`
|
|
FetchedAt time.Time `json:"fetchedAt"`
|
|
Body string `json:"body"`
|
|
}
|