#ifndef DB_HELPER_H #define DB_HELPER_H class QString; #include #include #include "yacreader_global.h" class ComicDB; class Folder; class LibraryItem; class Label; class QSqlDatabase; class ComicInfo; class QSqlRecord; class QSqlQuery; class YACReaderLibraries; class ReadingList; class DBHelper { public: // server static YACReaderLibraries getLibraries(); static QList getFolderSubfoldersFromLibrary(qulonglong libraryId, qulonglong folderId); static QList getFolderComicsFromLibrary(qulonglong libraryId, qulonglong folderId); static QList getFolderComicsFromLibrary(qulonglong libraryId, qulonglong folderId, bool sort); static QList getFolderComicsFromLibraryForReading(qulonglong libraryId, qulonglong folderId); static quint32 getNumChildrenFromFolder(qulonglong libraryId, qulonglong folderId); static qulonglong getParentFromComicFolderId(qulonglong libraryId, qulonglong id); static ComicDB getComicInfo(qulonglong libraryId, qulonglong id); static QList getSiblings(qulonglong libraryId, qulonglong parentId); static QString getFolderName(qulonglong libraryId, qulonglong id); static Folder getFolder(qulonglong libraryId, qulonglong id); static QList getLibrariesNames(); static QString getLibraryName(int id); static QList getLabelComics(qulonglong libraryId, qulonglong labelId); static QList getFavorites(qulonglong libraryId); static QList getReading(qulonglong libraryId); static QList getReadingLists(qulonglong libraryId); static QList getReadingListFullContent(qulonglong libraryId, qulonglong readingListId, bool getFullComicInfoFields = false); // objects management // deletes static void removeFromDB(LibraryItem *item, QSqlDatabase &db); static void removeFromDB(Folder *folder, QSqlDatabase &db); static void removeFromDB(ComicDB *comic, QSqlDatabase &db); static void removeLabelFromDB(qulonglong id, QSqlDatabase &db); static void removeListFromDB(qulonglong id, QSqlDatabase &db); // logic deletes static void deleteComicsFromFavorites(const QList &comicsList, QSqlDatabase &db); static void deleteComicsFromReading(const QList &comicsList, QSqlDatabase &db); static void deleteComicsFromLabel(const QList &comicsList, qulonglong labelId, QSqlDatabase &db); static void deleteComicsFromReadingList(const QList &comicsList, qulonglong readingListId, QSqlDatabase &db); // inserts static qulonglong insert(Folder *folder, QSqlDatabase &db); static qulonglong insert(ComicDB *comic, QSqlDatabase &db, bool insertAllInfo); static qulonglong insertLabel(const QString &name, YACReader::LabelColors color, QSqlDatabase &db); static qulonglong insertReadingList(const QString &name, QSqlDatabase &db); static qulonglong insertReadingSubList(const QString &name, qulonglong parentId, int ordering, QSqlDatabase &db); static void insertComicsInFavorites(const QList &comicsList, QSqlDatabase &db); static void insertComicsInLabel(const QList &comicsList, qulonglong labelId, QSqlDatabase &db); static void insertComicsInReadingList(const QList &comicsList, qulonglong readingListId, QSqlDatabase &db); // updates static void update(qulonglong libraryId, ComicInfo &comicInfo); static void update(ComicDB *comics, QSqlDatabase &db); static void update(ComicInfo *comicInfo, QSqlDatabase &db); static void updateRead(ComicInfo *comicInfo, QSqlDatabase &db); static void updateAdded(ComicInfo *comicInfo, QSqlDatabase &db); static void update(const Folder &folder, QSqlDatabase &db); static void propagateFolderUpdatesToParent(const Folder &folder, QSqlDatabase &db); static Folder updateChildrenInfo(qulonglong folderId, QSqlDatabase &db); static void updateChildrenInfo(QSqlDatabase &db); static void updateProgress(qulonglong libraryId, const ComicInfo &comicInfo); static void setComicAsReading(qulonglong libraryId, const ComicInfo &comicInfo); [[deprecated("Server v1")]] static void updateFromRemoteClient(qulonglong libraryId, const ComicInfo &comicInfo); static void updateReadingRemoteProgress(const ComicInfo &comicInfo, QSqlDatabase &db); static QMap> updateFromRemoteClient(const QMap> &comics, bool clientSendsHasBeenOpened); static void updateFromRemoteClientWithHash(const QList &comics); static void renameLabel(qulonglong id, const QString &name, QSqlDatabase &db); static void renameList(qulonglong id, const QString &name, QSqlDatabase &db); static void reasignOrderToSublists(QList ids, QSqlDatabase &db); static void reasignOrderToComicsInFavorites(QList comicIds, QSqlDatabase &db); static void reasignOrderToComicsInLabel(qulonglong labelId, QList comicIds, QSqlDatabase &db); static void reasignOrderToComicsInReadingList(qulonglong readingListId, QList comicIds, QSqlDatabase &db); static void updateComicsInfo(QList &comics, const QString &databasePath); static QList getFoldersFromParent(qulonglong parentId, QSqlDatabase &db, bool sort = true); static QList getSortedComicsFromParent(qulonglong parentId, QSqlDatabase &db); static QList getComicsFromParent(qulonglong parentId, QSqlDatabase &db, bool sort = true); static QList