#ifndef UDATABASE_H #define UDATABASE_H #include "qlistwidget.h" #include #include #include #include #include #include #include #include #include #include "timerinfo.h" class uDataBase : public QObject { Q_OBJECT // Информация о таймере public: // Конструктор с указанием файла базы данных explicit uDataBase(const QString& dbFileName, QObject* parent = nullptr); // Деструктор ~uDataBase(); // Чтение настройки QString readSetting(const QString& aName, const QString& aDefault = ""); // Запись настройки bool writeSetting(const QString& aName, const QString& aValue); bool LoadTableWidget(QTableWidget *tableWidget); bool clearTable(const QString &tableName); bool createTableForWidget(const QString &tableName, int columnCount); bool tableExists(const QString &tableName); bool SaveTableWidget(QTableWidget *tableWidget); bool SaveTimers(QTableWidget *tableWidget, const QList &timers); bool LoadTimers(QTableWidget *tableWidget, QList &timers); bool SaveGroupResponses(const QString &groupName, const QStringList &responses); bool createGroupResponseTable(); bool DeleteResponse(const QString &groupName, const QString &ResponseName); bool DeleteGroup(const QString &groupName); bool AddGroupResponse(const QString &groupName, const QString &response); QString ProcessResponseTemplate(const QString &templateText); QString GetRandomResponse(const QString &groupName); bool LoadRandomResponses(const QString &groupName, QListWidget *listWidget); bool LoadRandomGroups(QListWidget *listWidget); QString ProcessResponseTemplateRecursive(const QString &templateText, int depth); // Проверка подключения к БД bool isConnected() const; bool close(); // Получение последней ошибки QString lastError() const; private: // Инициализация базы данных (создание таблицы, если нужно) bool initializeDatabase(); QSqlDatabase m_db; QString m_dbFileName; QString m_lastError; }; #endif // DBSETTINGS_H