#pragma once #include "CommonScript.h" #include #include #include #include #include "db/DeviceInfo.h" #include "db/BankProfileInfo.h" namespace Dushanbe { class GetLastTransactionsScript final : public CommonScript { Q_OBJECT public: explicit GetLastTransactionsScript( QString deviceId, QString appCode, QList> targets = {}, QString materialId = {}, QObject *parent = nullptr ); ~GetLastTransactionsScript() override; signals: // Испускается на КАЖДУЮ найденную транзакцию из списка целей. // EventHandler использует эти данные напрямую для task_result вместо // повторного чтения из БД. void transactionParsed(const QJsonObject &tx); protected: void doStart() override; private: // Поиск одной цели по сумме и времени на экране "Выписка". Возвращает true // и эмитит transactionParsed, если нашли; false — если нет. Прерывание // выставляет m_error="Interrupted". bool searchOne(const DeviceInfo &device, int accountId, double searchAmount, const QDateTime &searchTime); // Возврат к началу списка "Выписка" между поисками целей. void scrollHistoryToTop(const DeviceInfo &device); QString m_deviceId; const QString m_appCode; // Список целей: пары (сумма в сомони со знаком, примерное время UTC). const QList> m_targets; const QString m_materialId; // UUID задачи (для сохранения дампов) QString m_error; }; } // namespace Dushanbe