mirror of
https://github.com/navidrome/navidrome.git
synced 2025-12-23 15:08:04 -05:00
* feat(model): add Rated At field - #4653 Signed-off-by: zacaj <zacaj@zacaj.com> * fix(ui): ignore empty dates in rating/love tooltips - #4653 * refactor(ui): add isDateSet util function Signed-off-by: zacaj <zacaj@zacaj.com> * feat: add tests for isDateSet and rated_at sort mappings Added comprehensive tests for isDateSet and urlValidate functions in ui/src/utils/validations.test.js covering falsy values, Go zero date handling, valid date strings, Date objects, and edge cases. Added rated_at sort mapping to album, artist, and mediafile repositories, following the same pattern as starred_at (sorting by rating first, then by timestamp). This enables proper sorting by rating date in the UI. --------- Signed-off-by: zacaj <zacaj@zacaj.com> Co-authored-by: zacaj <zacaj@zacaj.com> Co-authored-by: Deluan <deluan@navidrome.org>
20 lines
726 B
Go
20 lines
726 B
Go
package model
|
|
|
|
import "time"
|
|
|
|
type Annotations struct {
|
|
PlayCount int64 `structs:"play_count" json:"playCount,omitempty"`
|
|
PlayDate *time.Time `structs:"play_date" json:"playDate,omitempty" `
|
|
Rating int `structs:"rating" json:"rating,omitempty" `
|
|
RatedAt *time.Time `structs:"rated_at" json:"ratedAt,omitempty" `
|
|
Starred bool `structs:"starred" json:"starred,omitempty" `
|
|
StarredAt *time.Time `structs:"starred_at" json:"starredAt,omitempty"`
|
|
}
|
|
|
|
type AnnotatedRepository interface {
|
|
IncPlayCount(itemID string, ts time.Time) error
|
|
SetStar(starred bool, itemIDs ...string) error
|
|
SetRating(rating int, itemID string) error
|
|
ReassignAnnotation(prevID string, newID string) error
|
|
}
|