package modelimport ("context""time")type ScrobbleEntry struct {ID stringService stringUserID stringPlayTime time.TimeEnqueueTime time.TimeMediaFileID stringMediaFile}type ScrobbleEntries []ScrobbleEntrytype ScrobbleBufferRepository interface {UserIDs(ctx context.Context, service string) ([]string, error)Enqueue(ctx context.Context, service, userId, mediaFileId string, playTime time.Time) errorNext(ctx context.Context, service string, userId string) (*ScrobbleEntry, error)Dequeue(ctx context.Context, entry *ScrobbleEntry) errorLength(ctx context.Context) (int64, error)Discard(ctx context.Context, service string) error}