Revised scripts for payments and history retrieval, introducing improved error management with screenshots for debugging. Added a new LoginAndCheckAccountsScript for account validation, streamlined multi-threading, and updated application logic for clarity and reliability.
58 lines
2.1 KiB
C
58 lines
2.1 KiB
C
#pragma once
|
|
|
|
#include <QDateTime>
|
|
|
|
enum class AccountStatus {
|
|
Active,
|
|
Blocked
|
|
};
|
|
|
|
inline QString accountStatusToString(const AccountStatus status) {
|
|
switch (status) {
|
|
case AccountStatus::Active: return "active";
|
|
case AccountStatus::Blocked: return "blocked";
|
|
default: return "active";
|
|
}
|
|
}
|
|
|
|
inline AccountStatus accountStatusFromString(const QString &str) {
|
|
if (str == "active") return AccountStatus::Active;
|
|
if (str == "blocked") return AccountStatus::Blocked;
|
|
return AccountStatus::Active;
|
|
}
|
|
|
|
struct AccountInfo {
|
|
int id = -1;
|
|
QString deviceId; // code
|
|
QString appCode;
|
|
QString lastNumbers;
|
|
double amount = 0.0;
|
|
QDateTime updateTime;
|
|
AccountStatus status = AccountStatus::Active;
|
|
QString description;
|
|
};
|
|
|
|
inline QString convertAccountToString(const AccountInfo &info) {
|
|
QStringList lines;
|
|
QStringList emptyFields;
|
|
|
|
lines << "AccountInfo {";
|
|
|
|
if (info.id != -1) lines << " id: " + QString::number(info.id); else emptyFields << "id";
|
|
if (!info.deviceId.isEmpty()) lines << " deviceId: " + info.deviceId; else emptyFields << "deviceId";
|
|
if (!info.appCode.isEmpty()) lines << " appCode: " + info.appCode; else emptyFields << "appCode";
|
|
if (!info.lastNumbers.isEmpty()) lines << " lastNumbers: " + info.lastNumbers; else emptyFields << "lastNumbers";
|
|
if (info.amount != 0.0) lines << " amount: " + QString::number(info.amount, 'f', 2); else emptyFields << "amount";
|
|
if (info.updateTime.isValid()) lines << " updateTime: " + info.updateTime.toString(Qt::ISODate); else emptyFields << "updateTime";
|
|
if (info.status != AccountStatus::Active) lines << " status: " + accountStatusToString(info.status); else emptyFields << "status";
|
|
if (!info.description.isEmpty()) lines << " description: " + info.description; else emptyFields << "description";
|
|
|
|
if (!emptyFields.isEmpty()) {
|
|
lines << " --- empty: " + emptyFields.join(", ");
|
|
}
|
|
|
|
lines << "}";
|
|
|
|
return lines.join('\n');
|
|
}
|