diff options
author | rtk0c <[email protected]> | 2021-04-09 23:17:45 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2021-04-09 23:17:45 -0700 |
commit | 4303d0be47526b35e5bb3e3be001da227dae5d96 (patch) | |
tree | 6e79502e9966f835756d30929ea3f7127ba3080b /core/src/Model/TransactionsModel.hpp | |
parent | ce8660cc5bfc12e6e3f75d4cce22492783ca9066 (diff) |
Fix crash on load entries
- TODO format time properly
- TODO add Purchases table visualization
Diffstat (limited to 'core/src/Model/TransactionsModel.hpp')
-rw-r--r-- | core/src/Model/TransactionsModel.hpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/core/src/Model/TransactionsModel.hpp b/core/src/Model/TransactionsModel.hpp new file mode 100644 index 0000000..beed663 --- /dev/null +++ b/core/src/Model/TransactionsModel.hpp @@ -0,0 +1,55 @@ +#pragma once + +#include "cplt_fwd.hpp" + +#include <SQLiteCpp/Database.h> +#include <SQLiteCpp/Statement.h> +#include <cstdint> + +class SalesTable { +public: + SQLite::Statement GetRowsStatement; + SQLite::Statement FilterRowsStatement; + +public: + SalesTable(TransactionModel& db); +}; + +class PurchasesTable { +public: + PurchasesTable(TransactionModel& db); +}; + +class DeliveryTable { +public: + DeliveryTable(TransactionModel& db); +}; + +// TODO fuck SQLite::Statement has move ctor but not move assignment operator +class TransactionModel { +private: + class DatabaseWrapper { + public: + SQLite::Database mSqlite; + DatabaseWrapper(TransactionModel& self); + }; + + Project* mProject; + DatabaseWrapper mDbWrapper; + SalesTable mSales; + PurchasesTable mPurchases; + DeliveryTable mDeliveries; + +public: + TransactionModel(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(); +}; |