diff options
| author | Calvin Morrison <calvin@pobox.com> | 2025-12-27 14:19:21 -0500 |
|---|---|---|
| committer | Calvin Morrison <calvin@pobox.com> | 2025-12-27 14:19:21 -0500 |
| commit | 88b069141faafd1c5aefda1573b2285a38885ce4 (patch) | |
| tree | a99e069672be94edd087ef49e7a22d23a0eb0fd0 /database.h | |
initial commit
Diffstat (limited to 'database.h')
| -rw-r--r-- | database.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/database.h b/database.h new file mode 100644 index 0000000..cdde765 --- /dev/null +++ b/database.h @@ -0,0 +1,50 @@ +#ifndef DATABASE_H +#define DATABASE_H + +#include <QSqlDatabase> +#include <QSqlQuery> +#include <QSqlError> +#include <QString> +#include <QList> +#include <QDate> +#include "transaction.h" + +class Database { +public: + Database(); + ~Database(); + + bool open(const QString &path); + bool createTables(); + + // Transaction operations + bool addTransaction(const Transaction &transaction); + bool updateTransaction(const Transaction &transaction); + bool deleteTransaction(int id); + QList<Transaction> getTransactions(const QDate &startDate, const QDate &endDate); + QList<Transaction> getAllTransactions(); + + // Recurring rule operations + bool addRecurringRule(const RecurringRule &rule); + bool updateRecurringRule(const RecurringRule &rule); + bool deleteRecurringRule(int id); + QList<RecurringRule> getAllRecurringRules(); + + // Reconciliation + bool convertToActual(int transactionId, double actualAmount); + + // Settings + QString getSetting(const QString &name, const QString &defaultValue = QString()); + bool setSetting(const QString &name, const QString &value); + + QString lastError() const; + +private: + QSqlDatabase db; + QString errorMsg; + + Transaction queryToTransaction(QSqlQuery &query); + RecurringRule queryToRecurringRule(QSqlQuery &query); +}; + +#endif // DATABASE_H |
