From 9e64287383d4fe52d3b200e9b2a66e4a7157d5a4 Mon Sep 17 00:00:00 2001 From: emeric Date: Thu, 20 Jan 2022 19:56:42 +0100 Subject: [PATCH] Added scrobbling state for listens --- src/libs/services/database/impl/Session.cpp | 1 + .../database/include/services/database/Listen.hpp | 3 +++ .../database/include/services/database/Types.hpp | 13 +++++++------ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/libs/services/database/impl/Session.cpp b/src/libs/services/database/impl/Session.cpp index 76e0396c..57f7f1e4 100644 --- a/src/libs/services/database/impl/Session.cpp +++ b/src/libs/services/database/impl/Session.cpp @@ -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, diff --git a/src/libs/services/database/include/services/database/Listen.hpp b/src/libs/services/database/include/services/database/Listen.hpp index 32c02294..29d3394d 100644 --- a/src/libs/services/database/include/services/database/Listen.hpp +++ b/src/libs/services/database/include/services/database/Listen.hpp @@ -95,6 +95,7 @@ class Listen : public Object { 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 private: Wt::WDateTime _dateTime; Scrobbler _scrobbler; + ScrobblingState _scrobblingState {ScrobblingState::PendingAdd}; + Wt::Dbo::ptr _user; Wt::Dbo::ptr _track; }; diff --git a/src/libs/services/database/include/services/database/Types.hpp b/src/libs/services/database/include/services/database/Types.hpp index c1c0021b..4333be45 100644 --- a/src/libs/services/database/include/services/database/Types.hpp +++ b/src/libs/services/database/include/services/database/Types.hpp @@ -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); 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,