package testsimport ("errors""github.com/navidrome/navidrome/model")type MockPlayQueueRepo struct {model.PlayQueueRepositoryQueue *model.PlayQueueErr boolLastCols []string}func (m *MockPlayQueueRepo) Store(q *model.PlayQueue, cols ...string) error {if m.Err {return errors.New("error")}copyItems := make(model.MediaFiles, len(q.Items))copy(copyItems, q.Items)qCopy := *qqCopy.Items = copyItemsm.Queue = &qCopym.LastCols = colsreturn nil}func (m *MockPlayQueueRepo) RetrieveWithMediaFiles(userId string) (*model.PlayQueue, error) {if m.Err {return nil, errors.New("error")}if m.Queue == nil || m.Queue.UserID != userId {return nil, model.ErrNotFound}copyItems := make(model.MediaFiles, len(m.Queue.Items))copy(copyItems, m.Queue.Items)qCopy := *m.QueueqCopy.Items = copyItemsreturn &qCopy, nil}func (m *MockPlayQueueRepo) Retrieve(userId string) (*model.PlayQueue, error) {if m.Err {return nil, errors.New("error")}if m.Queue == nil || m.Queue.UserID != userId {return nil, model.ErrNotFound}copyItems := make(model.MediaFiles, len(m.Queue.Items))for i, t := range m.Queue.Items {copyItems[i] = model.MediaFile{ID: t.ID}}qCopy := *m.QueueqCopy.Items = copyItemsreturn &qCopy, nil}func (m *MockPlayQueueRepo) Clear(userId string) error {if m.Err {return errors.New("error")}m.Queue = nilreturn nil}