YCLIMP
Yandex Command Line Interface Music Player
Loading...
Searching...
No Matches
PlaylistDao.hpp
1#pragma once
2
3#include <SQLiteCpp/SQLiteCpp.h>
4
5#include <vector>
6
10struct DBPlaylist
11{
12public:
13 struct BasedOn
14 {
15 std::string fromType;
16 std::string locationId;
17 std::string fsPath;
18 std::string name;
19 };
20
21public:
22 DBPlaylist(int id, const std::string& name);
23 DBPlaylist(int id, const std::string& name, std::vector<int> trackOrder,
24 std::vector<BasedOn> basedOnList);
25
26public:
27 int id;
28 std::string name;
29 std::vector<int> trackOrder;
30 std::vector<BasedOn> basedOnList;
31};
32
45class PlaylistDao
46{
47public:
48 PlaylistDao(SQLite::Database& database);
49
50 void Init() const;
51 int AddPlaylist(const std::string& name) const;
52 int AddNewOrGetPlaylist(const std::string& name) const;
53 void RenamePlaylist(int id, const std::string& newName) const;
54 std::vector<DBPlaylist> FetchAll() const;
55
56 void AddTracksToPlaylist(int playlistId, std::vector<int> trackIds) const;
57 void AddTrackToPlaylist(int playlistId, int trackId) const;
58
59private:
60 SQLite::Database& mDatabase;
61};
int AddNewOrGetPlaylist(const std::string &name) const
If playlist with such name existed, return it's id.
Definition PlaylistDao.cpp:90
Definition PlaylistDao.hpp:14