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"` }