blob: 7a71fca12e5df94b689cc7c0bfa27eddd0af71e8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#pragma once
#include "cplt_fwd.hpp"
#include <SQLiteCpp/Database.h>
#include <SQLiteCpp/Statement.h>
#include <cstdint>
class SalesTable {
public:
SQLite::Statement GetRowCountStatement;
SQLite::Statement GetRowsStatement;
SQLite::Statement FilterRowsStatement;
public:
SalesTable(TransactionModel& db);
};
class PurchasesTable {
public:
SQLite::Statement GetRowCountStatement;
SQLite::Statement GetRowsStatement;
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();
};
|