1
0
forked from BRT/arc

Add description field to accounts table and related logic

Added a new `description` column to the `accounts` table in the database schema. Updated the model, DAO methods, and queries to handle the `description` field for both inserting and retrieving account data. This change ensures that account entries can now include descriptive information.
This commit is contained in:
slava 2025-04-22 10:18:42 +07:00
parent b1876bc3b9
commit 92b78c3804
4 changed files with 7 additions and 3 deletions

Binary file not shown.

View File

@ -9,8 +9,8 @@ bool AccountDAO::upsertAccount(const AccountInfo &info) {
QSqlQuery query(DatabaseManager::instance().database()); QSqlQuery query(DatabaseManager::instance().database());
query.prepare(R"( query.prepare(R"(
INSERT INTO accounts (device_id, app_name, card_name, amount, update_time, status) INSERT INTO accounts (device_id, app_name, card_name, amount, update_time, status, description)
VALUES (:device_id, :app_name, :card_name, :amount, :update_time, :status) VALUES (:device_id, :app_name, :card_name, :amount, :update_time, :status, :description)
ON CONFLICT(device_id, app_name, card_name) ON CONFLICT(device_id, app_name, card_name)
DO UPDATE SET DO UPDATE SET
amount = excluded.amount, amount = excluded.amount,
@ -24,6 +24,7 @@ bool AccountDAO::upsertAccount(const AccountInfo &info) {
query.bindValue(":amount", info.amount); query.bindValue(":amount", info.amount);
query.bindValue(":update_time", info.updateTime.toString(Qt::ISODate)); query.bindValue(":update_time", info.updateTime.toString(Qt::ISODate));
query.bindValue(":status", info.status); query.bindValue(":status", info.status);
query.bindValue(":description", info.description);
if (!query.exec()) { if (!query.exec()) {
qWarning() << "Ошибка при вставке/обновлении account:" << query.lastError().text(); qWarning() << "Ошибка при вставке/обновлении account:" << query.lastError().text();
@ -45,7 +46,7 @@ QList<AccountInfo> AccountDAO::getAccounts(const QString &deviceId, const QStrin
QSqlQuery query(DatabaseManager::instance().database()); QSqlQuery query(DatabaseManager::instance().database());
query.prepare(R"( query.prepare(R"(
SELECT id, device_id, app_name, card_name, amount, update_time, status SELECT id, device_id, app_name, card_name, amount, update_time, status, description
FROM accounts FROM accounts
WHERE device_id = :device_id AND app_name = :app_name WHERE device_id = :device_id AND app_name = :app_name
)"); )");
@ -67,6 +68,7 @@ QList<AccountInfo> AccountDAO::getAccounts(const QString &deviceId, const QStrin
acc.amount = query.value("amount").toDouble(); acc.amount = query.value("amount").toDouble();
acc.updateTime = QDateTime::fromString(query.value("update_time").toString(), Qt::ISODate); acc.updateTime = QDateTime::fromString(query.value("update_time").toString(), Qt::ISODate);
acc.status = query.value("status").toString(); acc.status = query.value("status").toString();
acc.description = query.value("description").toString();
accounts.append(acc); accounts.append(acc);
} }

View File

@ -18,6 +18,7 @@ CREATE TABLE IF NOT EXISTS accounts
device_id TEXT, device_id TEXT,
app_name TEXT, app_name TEXT,
card_name TEXT, card_name TEXT,
description TEXT,
amount REAL, amount REAL,
update_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP,
status TEXT, status TEXT,

View File

@ -10,4 +10,5 @@ struct AccountInfo {
double amount; double amount;
QDateTime updateTime; QDateTime updateTime;
QString status; QString status;
QString description;
}; };