52 lines
1.7 KiB
Go
52 lines
1.7 KiB
Go
|
package nws
|
||
|
|
||
|
import "time"
|
||
|
|
||
|
type UnitValue[T any] struct {
|
||
|
UnitCode string `json:"unitCode"`
|
||
|
Value T `json:"value"`
|
||
|
}
|
||
|
|
||
|
type PointProps struct {
|
||
|
GridId string `json:"gridId"`
|
||
|
GridX int `json:"gridX"`
|
||
|
GridY int `json:"gridY"`
|
||
|
Forecast string `json:"forecast"`
|
||
|
ForecastHourly string `json:"forecastHourly"`
|
||
|
ForecastGridData string `json:"forecastGridData"`
|
||
|
ForecastZone string `json:"forecastZone"`
|
||
|
TimeZone string `json:"timeZone"`
|
||
|
RadarStation string `json:"radarStation"`
|
||
|
ObservationStations string `json:"observationStations"`
|
||
|
}
|
||
|
|
||
|
type Point struct {
|
||
|
ID string `json:"id"`
|
||
|
Properties PointProps `json:"properties"`
|
||
|
}
|
||
|
|
||
|
type HourlyPeriod struct {
|
||
|
Number int `json:"number"`
|
||
|
StartTime time.Time `json:"startTime"`
|
||
|
Endime time.Time `json:"endTime"`
|
||
|
IsDayTime bool `json:"isDayTime"`
|
||
|
Temperature int `json:"temperature"`
|
||
|
ProbabilityOfPrecipitation UnitValue[int] `json:"probabilityOfPrecipitation"`
|
||
|
DewPoint UnitValue[float64] `json:"dewpoint"`
|
||
|
ShortForecast string `json:"shortForecast"`
|
||
|
}
|
||
|
|
||
|
type HourlyProps struct {
|
||
|
Updated time.Time `json:"updated"`
|
||
|
Units string `json:"units"`
|
||
|
Periods []HourlyPeriod `json:"periods"`
|
||
|
}
|
||
|
|
||
|
type Observations struct {
|
||
|
Timestamp time.Time `json:"timestamp"`
|
||
|
Temperature UnitValue[float64] `json:"temperature"`
|
||
|
DewPoint UnitValue[float64] `json:"dewpoint"`
|
||
|
WindDirection UnitValue[int] `json:"windDirection"`
|
||
|
WindSpeed UnitValue[float64] `json:"windSpeed"`
|
||
|
}
|