diff options
author | rtk0c <[email protected]> | 2021-06-03 10:16:05 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2021-06-03 10:16:05 -0700 |
commit | 236d5d5c85bb05013f86b8096b85a79d6a58641e (patch) | |
tree | 580df6c865991c26bf79f9f6746bb1d6826bbce7 /core/src/Model/Database.hpp | |
parent | 7a325e1b3be04bc54941431458903022da1643ac (diff) |
Rename TransactionsModel to MainDatabase
Diffstat (limited to 'core/src/Model/Database.hpp')
-rw-r--r-- | core/src/Model/Database.hpp | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/core/src/Model/Database.hpp b/core/src/Model/Database.hpp new file mode 100644 index 0000000..90914a0 --- /dev/null +++ b/core/src/Model/Database.hpp @@ -0,0 +1,80 @@ +#pragma once + +#include "cplt_fwd.hpp" + +#include <SQLiteCpp/Database.h> +#include <SQLiteCpp/Statement.h> +#include <cstdint> + +enum class TableKind +{ + Sales, + SalesItems, + Purchases, + PurchasesItems, + Deliveries, + DeliveriesItems, +}; + +class SalesTable +{ +public: + SQLite::Statement GetRowCount; + SQLite::Statement GetRows; + SQLite::Statement GetItems; + +public: + SalesTable(MainDatabase& db); +}; + +class PurchasesTable +{ +public: + SQLite::Statement GetRowCount; + SQLite::Statement GetRows; + SQLite::Statement GetItems; + +public: + PurchasesTable(MainDatabase& db); +}; + +class DeliveryTable +{ +public: + SQLite::Statement FilterByTypeAndId; + SQLite::Statement GetItems; + +public: + DeliveryTable(MainDatabase& db); +}; + +// TODO fuck SQLite::Statement has move ctor but not move assignment operator +class MainDatabase +{ +private: + class DatabaseWrapper + { + public: + SQLite::Database mSqlite; + DatabaseWrapper(MainDatabase& self); + }; + + Project* mProject; + DatabaseWrapper mDbWrapper; + SalesTable mSales; + PurchasesTable mPurchases; + DeliveryTable mDeliveries; + +public: + MainDatabase(Project& project); + + const SQLite::Database& GetSQLite() const; + SQLite::Database& GetSQLite(); + + const SalesTable& GetSales() const; + SalesTable& GetSales(); + const PurchasesTable& GetPurchases() const; + PurchasesTable& GetPurchases(); + const DeliveryTable& GetDeliveries() const; + DeliveryTable& GetDeliveries(); +}; |