blob: c9b33f19ebbc8f1e0745980063d6d268112afae0 (
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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(TransactionModel& db);
};
class PurchasesTable
{
public:
SQLite::Statement GetRowCount;
SQLite::Statement GetRows;
SQLite::Statement GetItems;
public:
PurchasesTable(TransactionModel& db);
};
class DeliveryTable
{
public:
SQLite::Statement FilterByTypeAndId;
SQLite::Statement GetItems;
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();
};
|