#ifndef DATABASE_H #define DATABASE_H #include "sale.h" #include "seller.h" #include #include class Database { public: enum class InitResult { OK, OUTDATED_REPLACED }; explicit Database(const std::string &dbname); Database(); ~Database(); Database(const Database &) = delete; Database &operator=(const Database &) = delete; void exec(const std::string &sql); unsigned int storeSellers(std::vector> &sellers, bool onlyDelete = false); unsigned int loadSellers(std::vector> &sellers); unsigned int storeSales(std::vector> &sales); unsigned int loadSales(std::vector> &sales, std::vector> &sellers); void updateCashPointNo(int oldCashPointNo, int newCashPointNo); void newDb(); InitResult getInitResult() { return initResult_; } private: sqlite3 *db_{nullptr}; std::string dbname_; void init(); void beginTransaction(); void endTransaction(); void createNew(); int getVersion(); unsigned int storeArticles(std::vector
articles); void updateDbToVer2(); void updateDbToVer3(); InitResult initResult_{InitResult::OK}; }; #endif // DATABASE_H