Added scrobbling state for listens

This commit is contained in:
emeric
2022-01-20 19:56:42 +01:00
parent aac119f34c
commit 9e64287383
3 changed files with 11 additions and 6 deletions
@@ -414,6 +414,7 @@ CREATE TABLE IF NOT EXISTS "listen" (
"version" integer not null,
"date_time" text,
"scrobbler" integer not null,
"scrobbling_state" integer not null,
"track_id" bigint,
"user_id" bigint,
constraint "fk_listen_track" foreign key ("track_id") references "track" ("id") on delete cascade deferrable initially deferred,
@@ -95,6 +95,7 @@ class Listen : public Object<Listen, ListenId>
{
Wt::Dbo::field(a, _dateTime, "date_time");
Wt::Dbo::field(a, _scrobbler, "scrobbler");
Wt::Dbo::field(a, _scrobblingState, "scrobbling_state");
Wt::Dbo::belongsTo(a, _track, "track", Wt::Dbo::OnDeleteCascade);
Wt::Dbo::belongsTo(a, _user, "user", Wt::Dbo::OnDeleteCascade);
@@ -103,6 +104,8 @@ class Listen : public Object<Listen, ListenId>
private:
Wt::WDateTime _dateTime;
Scrobbler _scrobbler;
ScrobblingState _scrobblingState {ScrobblingState::PendingAdd};
Wt::Dbo::ptr<User> _user;
Wt::Dbo::ptr<Track> _track;
};
@@ -111,7 +111,6 @@ namespace Database
StarredDateDesc,
};
// Do not change enum values!
enum class TrackArtistLinkType
{
Artist = 0, // regular track artist
@@ -128,7 +127,6 @@ namespace Database
};
// User selectable audio file formats
// Do not change values
enum class AudioFormat
{
MP3 = 1,
@@ -143,14 +141,19 @@ namespace Database
void visitAllowedAudioBitrates(std::function<void(Bitrate)>);
bool isAudioBitrateAllowed(Bitrate bitrate);
// Do not change enum values!
enum class Scrobbler
{
Internal = 0,
ListenBrainz = 1,
};
// Do not change enum values!
enum class ScrobblingState
{
PendingAdd = 0,
Synchronized = 1,
PendingRemove = 2,
};
enum class UserType
{
REGULAR = 0,
@@ -158,14 +161,12 @@ namespace Database
DEMO = 2,
};
// Do not change enum values!
enum class UITheme
{
Light = 0,
Dark = 1,
};
// Do not change enum values!
enum class SubsonicArtistListMode
{
AllArtists = 0,