1
0
forked from BRT/arc
arc/database/dao/TransactionDAO.h
trnsmkot 4b502450bd Add EventWindow, database migrations, and enhanced DAO methods
Implemented `EventWindow` for viewing events with pagination and table-based UI. Added database migration to remove `UNIQUE` constraint on `external_id` in `events`. Enhanced DAO methods for event retrieval, pagination, and transaction updates. Integrated OCR recognition in transaction scripts and streamlined event handling in services.
2026-03-04 22:56:47 +07:00

40 lines
1.4 KiB
C++

#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<TransactionInfo> 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<TransactionInfo> getTransactionsWithinHours(int accountId, int hours);
[[nodiscard]] static QList<TransactionInfo> getLastTransactions(int accountId, int limit);
[[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 updateBankTrExternalId(int id, const QString &bankTrExternalId);
[[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);
};