#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 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 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); //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 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); 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 update(const Folder & folder, QSqlDatabase & db); static void updateChildrenInfo(const Folder & folder, QSqlDatabase & db); static void 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); static void updateReadingRemoteProgress(const ComicInfo & comicInfo, QSqlDatabase & db); static void updateFromRemoteClient(qulonglong libraryId,const ComicInfo & comicInfo); static void updateFromRemoteClientWithHash(const ComicInfo & comicInfo); 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 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