Files
fred-api/models/models.go
2026-04-02 01:04:59 +08:00

269 lines
8.6 KiB
Go

package models
type Category struct {
ID int `json:"id"`
Name string `json:"name"`
ParentID int `json:"parent_id"`
Level int `json:"level"`
Notes string `json:"notes,omitempty"`
}
type CategoryResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Category *Category `json:"category"`
}
type CategoriesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Categories []Category `json:"categories"`
}
type Series struct {
ID string `json:"id"`
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Title string `json:"title"`
ObservationStart string `json:"observation_start"`
ObservationEnd string `json:"observation_end"`
Frequency string `json:"frequency"`
FrequencyShort string `json:"frequency_short"`
Units string `json:"units"`
UnitsShort string `json:"units_short"`
SeasonalAdjustment string `json:"seasonal_adjustment"`
SeasonalAdjustmentShort string `json:"seasonal_adjustment_short"`
LastUpdated string `json:"last_updated"`
Popularity int `json:"popularity"`
Notes string `json:"notes,omitempty"`
}
type SeriesListResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Seriess []Series `json:"seriess"`
}
type SeriesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Series Series `json:"series"`
}
type Observation struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Date string `json:"date"`
Value string `json:"value"`
}
type ObservationsResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
ObservationStart string `json:"observation_start"`
ObservationEnd string `json:"observation_end"`
Units string `json:"units"`
OutputType int `json:"output_type"`
FileType string `json:"file_type"`
OrderBy string `json:"order_by"`
SortOrder string `json:"sort_order"`
Count int `json:"count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Observations []Observation `json:"observations"`
}
type SearchResult struct {
ID string `json:"id"`
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Title string `json:"title"`
Frequency string `json:"frequency"`
FrequencyShort string `json:"frequency_short"`
Units string `json:"units"`
UnitsShort string `json:"units_short"`
SeasonalAdjustment string `json:"seasonal_adjustment"`
SeasonalAdjustmentShort string `json:"seasonal_adjustment_short"`
LastUpdated string `json:"last_updated"`
Popularity int `json:"popularity"`
Notes string `json:"notes,omitempty"`
}
type SearchResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Count int `json:"count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
OrderBy string `json:"order_by"`
SortOrder string `json:"sort_order"`
Results []SearchResult `json:"seriess"`
}
type Release struct {
ID int `json:"id"`
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Link string `json:"link"`
Name string `json:"name"`
PressRelease bool `json:"press_release"`
Notes string `json:"notes,omitempty"`
}
type ReleasesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Count int `json:"count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Releases []Release `json:"releases"`
}
type ReleaseResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Release Release `json:"release"`
}
type ReleaseDatesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Count int `json:"count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
ReleaseDates []struct {
ReleaseID int `json:"release_id"`
Date string `json:"date"`
ReleaseName string `json:"release_name"`
} `json:"release_dates"`
}
type Source struct {
ID int `json:"id"`
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Name string `json:"name"`
Link string `json:"link"`
Notes string `json:"notes,omitempty"`
}
type SourcesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Count int `json:"count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Sources []Source `json:"sources"`
}
type SourceResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Source Source `json:"source"`
}
type Tag struct {
Name string `json:"name"`
GroupName string `json:"group_name"`
Serverity string `json:"serverity"`
Notes string `json:"notes,omitempty"`
Popularity int `json:"popularity"`
}
type TagsResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Count int `json:"count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Tags []Tag `json:"tags"`
}
type RelatedTagsResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Count int `json:"count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
RelatedTags []Tag `json:"related_tags"`
}
type SeriesUpdate struct {
ID string `json:"id"`
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Title string `json:"title"`
Frequency string `json:"frequency"`
Units string `json:"units"`
LastUpdated string `json:"last_updated"`
}
type SeriesUpdatesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Count int `json:"count"`
Offset int `json:"offset"`
Limit int `json:"limit"`
Observations []SeriesUpdate `json:"seriess"`
}
type VintageDatesResponse struct {
VintageDates []string `json:"vintage_dates"`
}
type CategorySeriesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Series []Series `json:"seriess"`
}
type CategoryTagsResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Tags []Tag `json:"tags"`
}
type SeriesTagsResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Tags []Tag `json:"tags"`
}
type SeriesCategoriesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Categories []Category `json:"categories"`
}
type ReleaseSourcesResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Sources []Source `json:"sources"`
}
type ReleaseTagsResponse struct {
RealtimeStart string `json:"realtime_start"`
RealtimeEnd string `json:"realtime_end"`
Tags []Tag `json:"tags"`
}
type ReleaseTablesResponse struct {
Result struct {
Data []struct {
SeriesID string `json:"series_id"`
Title string `json:"title"`
StartDate string `json:"start_date"`
EndDate string `json:"end_date"`
LastUpdated string `json:"last_updated"`
Frequency string `json:"frequency"`
Units string `json:"units"`
SeasonalAdj string `json:"seasonal_adjustment"`
} `json:"data"`
} `json:"result"`
}
type ErrorResponse struct {
ErrorCode string `json:"error_code"`
ErrorMessage string `json:"error_message"`
}