#ifndef __DATABASE_H__ #define __DATABASE_H__ #include "HomeBox.h" #include "Singleton.h" #include "Task.h" #include struct sqlite3; class Database { friend class Amass::Singleton; public: ~Database(); bool open(const std::string &path); Tasks tasks(); bool addTask(uint64_t createTime, const std::string &content, const std::string &comment = "", int parentId = -1, bool finished = false); bool removeTask(int id); void setTaskFinished(int id, bool finished, uint64_t finishedTime); void updateTodayVisitCount(const std::string &url, const std::string &visitorUuid); void clearTodayVisitRecord(); void updateVisitCount(); HomeBox::Items homeBoxItems(); bool addHomeBoxItem(const std::string &name, const std::string &location, int cost); protected: void initialize(); private: sqlite3 *m_sqlite3 = nullptr; }; #endif // __DATABASE_H__