aboutsummaryrefslogtreecommitdiff
path: root/app/source/Cplt/Model/Database.hpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2022-06-30 21:38:53 -0700
committerrtk0c <[email protected]>2022-06-30 21:38:53 -0700
commit7fe47a9d5b1727a61dc724523b530762f6d6ba19 (patch)
treee95be6e66db504ed06d00b72c579565bab873277 /app/source/Cplt/Model/Database.hpp
parent2cf952088d375ac8b2f45b144462af0953436cff (diff)
Restructure project
Diffstat (limited to 'app/source/Cplt/Model/Database.hpp')
-rw-r--r--app/source/Cplt/Model/Database.hpp79
1 files changed, 79 insertions, 0 deletions
diff --git a/app/source/Cplt/Model/Database.hpp b/app/source/Cplt/Model/Database.hpp
new file mode 100644
index 0000000..222e43d
--- /dev/null
+++ b/app/source/Cplt/Model/Database.hpp
@@ -0,0 +1,79 @@
+#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);
+};
+
+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();
+};