создал менеджер донатов
- добавление - удаление - сохранение
This commit is contained in:
@@ -1571,3 +1571,96 @@ bool uDataBase::clearActionsTable()
|
||||
query.exec("DELETE FROM sqlite_sequence WHERE name='actions'");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool uDataBase::createDonationTriggersTable()
|
||||
{
|
||||
QSqlQuery query(m_db);
|
||||
QString sql =
|
||||
"CREATE TABLE IF NOT EXISTS donation_triggers ("
|
||||
" id INTEGER PRIMARY KEY AUTOINCREMENT,"
|
||||
" name TEXT NOT NULL,"
|
||||
" rule TEXT NOT NULL,"
|
||||
" created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP"
|
||||
")";
|
||||
if (!query.exec(sql)) {
|
||||
m_lastError = query.lastError().text();
|
||||
qWarning() << "Failed to create donation_triggers table:" << m_lastError;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
int uDataBase::saveDonationTrigger(const DonationTrigger &trigger)
|
||||
{
|
||||
if (!m_db.isOpen()) {
|
||||
m_lastError = "Database is not open";
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!tableExists("donation_triggers")) {
|
||||
if (!createDonationTriggersTable()) return -1;
|
||||
}
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
query.prepare("INSERT INTO donation_triggers (name, rule) VALUES (:name, :rule)");
|
||||
query.bindValue(":name", trigger.name);
|
||||
query.bindValue(":rule", trigger.rule);
|
||||
|
||||
if (!query.exec()) {
|
||||
m_lastError = query.lastError().text();
|
||||
qWarning() << "Failed to save donation trigger:" << m_lastError;
|
||||
return -1;
|
||||
}
|
||||
|
||||
return query.lastInsertId().toInt();
|
||||
}
|
||||
|
||||
bool uDataBase::deleteDonationTrigger(int id)
|
||||
{
|
||||
if (!m_db.isOpen()) {
|
||||
m_lastError = "Database is not open";
|
||||
return false;
|
||||
}
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
query.prepare("DELETE FROM donation_triggers WHERE id = :id");
|
||||
query.bindValue(":id", id);
|
||||
if (!query.exec()) {
|
||||
m_lastError = query.lastError().text();
|
||||
qWarning() << "Failed to delete donation trigger:" << m_lastError;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
QList<DonationTrigger> uDataBase::loadAllDonationTriggers()
|
||||
{
|
||||
QList<DonationTrigger> list;
|
||||
if (!m_db.isOpen()) {
|
||||
m_lastError = "Database is not open";
|
||||
return list;
|
||||
}
|
||||
|
||||
if (!tableExists("donation_triggers")) {
|
||||
return list; // таблицы нет – пусто
|
||||
}
|
||||
|
||||
QSqlQuery query(m_db);
|
||||
query.prepare("SELECT id, name, rule FROM donation_triggers ORDER BY id");
|
||||
if (!query.exec()) {
|
||||
m_lastError = query.lastError().text();
|
||||
qWarning() << "Failed to load donation triggers:" << m_lastError;
|
||||
return list;
|
||||
}
|
||||
|
||||
while (query.next()) {
|
||||
DonationTrigger t;
|
||||
t.id = query.value("id").toInt();
|
||||
t.name = query.value("name").toString();
|
||||
t.rule = query.value("rule").toString();
|
||||
// Парсить rule будем в DonationManager, здесь только храним
|
||||
list.append(t);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user