navidrome/model/album.go

38 lines
865 B
Go

package model
import "time"
type Album struct {
ID string
Name string
ArtistID string
CoverArtPath string
CoverArtId string
Artist string
AlbumArtist string
Year int
Compilation bool
SongCount int
Duration int
Genre string
CreatedAt time.Time
UpdatedAt time.Time
}
type Albums []Album
type AlbumRepository interface {
CountAll() (int64, error)
Exists(id string) (bool, error)
Put(m *Album) error
Get(id string) (*Album, error)
FindByArtist(artistId string) (Albums, error)
GetAll(...QueryOptions) (Albums, error)
GetMap(ids []string) (map[string]Album, error)
GetRandom(...QueryOptions) (Albums, error)
GetStarred(userId string, options ...QueryOptions) (Albums, error)
Search(q string, offset int, size int) (Albums, error)
Refresh(ids ...string) error
PurgeEmpty() error
}