diff options
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 |
