YCLIMP
Yandex Command Line Interface Music Player
Loading...
Searching...
No Matches
TrackDao.hpp
1#pragma once
2
3#include <SQLiteCpp/SQLiteCpp.h>
4
5#include <vector>
6
10struct DBTrack
11{
12 DBTrack() = default;
13 DBTrack(int id, int playlistId, std::string fromType, std::string locationId,
14 std::string fsPath, std::string name, int inode);
15
16 int id;
17 int playlistId;
18 std::string fromType;
19 std::string locationId;
20 std::string fsPath;
21 std::string name;
22 int inode;
23};
24
32class TrackDao
33{
34public:
35 TrackDao(SQLite::Database& database);
36 void Init() const;
37 std::vector<DBTrack> FetchAllFromPlaylist(int playlist_id) const;
38 std::vector<DBTrack> FetchAll() const;
39 DBTrack FetchOneByID(int playlist_id) const;
40 DBTrack FetchOneByYaID(const std::string& location_id) const;
41 DBTrack FetchOneByPath(const std::string& fs_path) const;
42 int AddTrack(DBTrack track) const;
43 std::vector<int> AddTracks(std::vector<DBTrack> tracks) const;
44
45private:
46 SQLite::Database& mDatabase;
47};
std::vector< DBTrack > FetchAllFromPlaylist(int playlist_id) const
Fetch All tracks from specific playlist.
Definition TrackDao.cpp:51
The DataBaseTrack - track representation in Database.
Definition TrackDao.hpp:11