From 88b069141faafd1c5aefda1573b2285a38885ce4 Mon Sep 17 00:00:00 2001 From: Calvin Morrison Date: Sat, 27 Dec 2025 14:19:21 -0500 Subject: initial commit --- database.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 database.h (limited to 'database.h') 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 +#include +#include +#include +#include +#include +#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 getTransactions(const QDate &startDate, const QDate &endDate); + QList getAllTransactions(); + + // Recurring rule operations + bool addRecurringRule(const RecurringRule &rule); + bool updateRecurringRule(const RecurringRule &rule); + bool deleteRecurringRule(int id); + QList 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 -- cgit v1.2.3