#ifndef DBCONFGMANAGER_H #define DBConfigManager_H #include #include "db/SettingsTable.h" #include "db/InstanceTable.h" class DBConfigManager : public DBManager { public: DBConfigManager(QObject* parent = nullptr); QPair importJson(const QString& configFile); bool exportJson(const QString& path = "") const; QJsonObject getConfiguration(const QList& instances = {}, const QStringList& instanceFilteredTypes = {}, const QStringList& globalFilterTypes = {} ) const; QPair validateConfiguration(); QPair validateConfiguration(QJsonObject& config, bool doCorrections = false); QPair addMissingDefaults(); QPair updateConfiguration(); QPair updateConfiguration(QJsonObject& config, bool doCorrections = false); QPair migrateConfiguration(); private: // Function to import global settings from the configuration bool importGlobalSettings(const QJsonObject& config, QStringList& errorList); // Function to import all instances from the configuration bool importInstances(const QJsonObject& config, QStringList& errorList); // Function to import a single instance bool importInstance(InstanceTable& instanceTable, const QJsonObject& instanceConfig, quint8 instanceIdx, QStringList& errorList); // Function to import settings for a specific instance bool importInstanceSettings(SettingsTable& settingsTable, const QJsonObject& instanceSettings, QStringList& errorList); }; #endif // DBCONFGMANAGER_H