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