#pragma once #include "db/TransactionInfo.h" class TransactionDAO { public: [[nodiscard]] static bool insertTransactionIfNotExists(const TransactionInfo &info); [[nodiscard]] static int insertTransaction(const TransactionInfo &info); [[nodiscard]] static bool deleteTransaction(int id); [[nodiscard]] static QList getTransactions(int accountId); [[nodiscard]] static bool updateTransaction(const TransactionInfo &info); [[nodiscard]] static bool updateTransactionStatus(int id, TransactionStatus status); [[nodiscard]] static TransactionInfo getTransactionById(int id); [[nodiscard]] static QList getTransactionsWithinHours(int accountId, int hours); [[nodiscard]] static bool updateTransaction( int id, TransactionStatus status, const QString &oldDesc, const QString &newDesc ); [[nodiscard]] static bool updateExternalTransactionId(int id, int externalId); [[nodiscard]] static bool updateReceiptImage(int id, const QByteArray &image); // Найти транзакцию по bank_name + bank_time + amount [[nodiscard]] static TransactionInfo findByBankTimeAndAmount( int accountId, const QString &bankName, const QString &bankTime, double amount); };