83 lines
2.3 KiB
Go
83 lines
2.3 KiB
Go
package models
|
|
|
|
// SearchResult represents search results
|
|
type SearchResult struct {
|
|
Tracks *SearchTracksResult `json:"tracks"`
|
|
Albums *SearchAlbumsResult `json:"albums"`
|
|
Artists *SearchArtistsResult `json:"artists"`
|
|
Playlists *SearchPlaylistsResult `json:"playlists"`
|
|
Videos *SearchVideosResult `json:"videos"`
|
|
Users *SearchUsersResult `json:"users"`
|
|
}
|
|
|
|
// SearchTracksResult represents track search results
|
|
type SearchTracksResult struct {
|
|
Total int `json:"total"`
|
|
Results []Track `json:"results"`
|
|
}
|
|
|
|
// SearchAlbumsResult represents album search results
|
|
type SearchAlbumsResult struct {
|
|
Total int `json:"total"`
|
|
Results []Album `json:"results"`
|
|
}
|
|
|
|
// SearchArtistsResult represents artist search results
|
|
type SearchArtistsResult struct {
|
|
Total int `json:"total"`
|
|
Results []Artist `json:"results"`
|
|
}
|
|
|
|
// SearchPlaylistsResult represents playlist search results
|
|
type SearchPlaylistsResult struct {
|
|
Total int `json:"total"`
|
|
Results []Playlist `json:"results"`
|
|
}
|
|
|
|
// SearchVideosResult represents video search results
|
|
type SearchVideosResult struct {
|
|
Total int `json:"total"`
|
|
Results []Video `json:"results"`
|
|
}
|
|
|
|
// SearchUsersResult represents user search results
|
|
type SearchUsersResult struct {
|
|
Total int `json:"total"`
|
|
Results []User `json:"results"`
|
|
}
|
|
|
|
// SearchBanner represents a search banner
|
|
type SearchBanner struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
Image string `json:"image"`
|
|
URL string `json:"url"`
|
|
Action string `json:"action"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// Tag represents a search tag
|
|
type Tag struct {
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
Count int `json:"count"`
|
|
Type string `json:"type"`
|
|
}
|
|
|
|
// Video represents a video (minimal)
|
|
type Video struct {
|
|
BaseModel
|
|
ID string `json:"id"`
|
|
Title string `json:"title"`
|
|
Duration int `json:"duration"`
|
|
CoverURI string `json:"cover_uri"`
|
|
PreviewURI string `json:"preview_uri"`
|
|
Available bool `json:"available"`
|
|
Views int `json:"views"`
|
|
Likes int `json:"likes"`
|
|
CreatedAt string `json:"created_at"`
|
|
Owner *User `json:"owner"`
|
|
}
|