#ifndef SERVERCONFIG_H #define SERVERCONFIG_H #include #include #include #include "core/defs.h" #include "core/models/containers/containerConfig.h" class SelfHostedServerConfig; class ApiV1ServerConfig; class ApiV2ServerConfig; using ServerConfigVariant = std::variant, QSharedPointer, QSharedPointer >; class ServerConfig { public: ServerConfig(const QJsonObject &serverConfigObject); virtual QJsonObject toJson() const; static QSharedPointer createServerConfig(const QJsonObject &serverConfigObject); static ServerConfigVariant getServerConfigVariant(const QSharedPointer &serverConfig); void updateProtocolConfig(const QString &containerName, const QMap> &protocolConfigs); amnezia::ServerConfigType type; QString hostName; QString dns1; QString dns2; QString defaultContainer; bool nameOverriddenByUser; int crc; // TODO it makes sense to add for all server types or move it to the api QMap containerConfigs; }; #endif // SERVERCONFIG_H