quintodrome/model/mediafile.go

58 lines
1.3 KiB
Go
Raw Normal View History

2020-01-14 18:22:34 -09:00
package model
2016-02-26 23:35:01 -09:00
import (
"mime"
"time"
2016-02-26 23:35:01 -09:00
)
type MediaFile struct {
ID string
2016-02-26 23:35:01 -09:00
Path string
Title string
Album string
Artist string
ArtistID string
2016-02-26 23:35:01 -09:00
AlbumArtist string
2020-01-17 15:36:50 -09:00
AlbumID string
2016-03-03 06:34:17 -09:00
HasCoverArt bool
TrackNumber int
DiscNumber int
Year int
2016-03-02 19:51:26 -09:00
Size string
Suffix string
Duration int
BitRate int
Genre string
2016-02-26 23:35:01 -09:00
Compilation bool
PlayCount int
PlayDate time.Time
Rating int
2016-03-02 21:07:13 -09:00
Starred bool
2020-01-17 15:36:50 -09:00
StarredAt time.Time
2016-02-26 23:35:01 -09:00
CreatedAt time.Time
UpdatedAt time.Time
}
func (mf *MediaFile) ContentType() string {
return mime.TypeByExtension("." + mf.Suffix)
}
2016-03-03 17:01:55 -09:00
type MediaFiles []MediaFile
type MediaFileRepository interface {
CountAll() (int64, error)
Exists(id string) (bool, error)
Put(m *MediaFile, overrideAnnotation bool) error
2016-03-03 08:08:44 -09:00
Get(id string) (*MediaFile, error)
FindByAlbum(albumId string) (MediaFiles, error)
2020-01-16 11:56:24 -09:00
FindByPath(path string) (MediaFiles, error)
GetStarred(options ...QueryOptions) (MediaFiles, error)
GetAllIds() ([]string, error)
Search(q string, offset int, size int) (MediaFiles, error)
2020-01-16 11:56:24 -09:00
Delete(id string) error
2020-01-16 12:53:48 -09:00
DeleteByPath(path string) error
SetStar(star bool, ids ...string) error
SetRating(rating int, ids ...string) error
MarkAsPlayed(id string, playTime time.Time) error
2016-03-02 09:18:39 -09:00
}