#pragma once

namespace ConfigContextConstants
{
    static const AgString  V_GENERAL = "general";
    static const AgString  V_DATABASE = "database";
    static const AgString  V_CLUSTER = "cluster";
    static const AgString  V_WEBAPPS = "webapps";
    static const AgString  V_DDNS = "ddns";
    static const AgString  V_MAIL = "mail";
    static const AgString  V_MAIL_PROPERTIES = "mailProperties";
    static const AgString  V_SMS = "sms";
    static const AgString  V_SMS_PROPERTIES = "smsProperties";

    static const AgString  V_STATISTICS = "statistics";
    static const AgString  V_DEFAULT_SYNC_OPTIONS = "defaultSyncOptions";
    static const AgString  V_EVENT_STORAGES = "eventStorages";
    static const AgString  V_EVENT_PROCESSING_RULES = "eventProcessingRules";
    static const AgString  V_EVENT_WRITERS = "eventWriters";
    static const AgString  V_DEFAULT_PERMISSIONS = "defaultPermissions";
    static const AgString  V_ADDITIONAL_PERMISSIONS = "additionalPermissions";
    static const AgString  V_PLUGINS = "plugins";
    static const AgString  V_LDAP_AUTH = "ldapAuth";
    static const AgString  V_VIRTUAL_NETWORKS = "virtualNetworks";

    static const AgString  VF_GENERAL_SERVER_DESCRIPTION = "serverDescription";
    static const AgString  VF_GENERAL_TIMEZONE = "timezone";
    static const AgString  VF_GENERAL_SERVER_IP = "serverIp";
    static const AgString  VF_GENERAL_SERVER_HOST_NAME = "serverHostName";
    static const AgString  VF_GENERAL_USERS_SELF_REGISTRATION = "usersSelfRegistration";
    static const AgString  VF_GENERAL_CONFIG_GUI_MODE = "configGuiMode";
    static const AgString  VF_GENERAL_CLIENT_PORT = "clientPort";
    static const AgString  VF_GENERAL_NET_ADMIN_ENABLED = "netAdminEnabled";
    static const AgString  VF_GENERAL_NET_ADMIN_PORT = "netAdminPort";
    static const AgString  VF_GENERAL_STATISTICS_FOLDER = "statisticsFolder";

    static const AgString  VF_DATABASE_CLUSTER = "databaseCluster";
    static const AgString  VF_DATABASE_DRIVER = "databaseDriver";
    static const AgString  VF_DATABASE_URL = "databaseUrl";
    static const AgString  VF_DATABASE_CLUSTER_DATABASES = "databaseClusterDatabases";
    static const AgString  VF_DATABASE_USERNAME = "databaseUsername";
    static const AgString  VF_DATABASE_PASSWORD = "databasePassword";
    static const AgString  VF_DATABASE_SQL_DIALECT = "databaseSqlDialect";
    static const AgString  VF_DATABASE_MINIMUM_POOL_SIZE = "databaseMinimumPoolSize";
    static const AgString  VF_DATABASE_MAXIMUM_POOL_SIZE = "databaseMaximumPoolSize";
    static const AgString  VF_DATABASE_BATCH_SIZE = "databaseBatchSize";
    static const AgString  VF_DATABASE_CHECKOUT_TIMEOUT = "databaseCheckoutTimeout";
    static const AgString  VF_DATABASE_DISABLE_POOLING = "databaseDisablePooling";

    static const AgString  VF_DATABASES_ID = "id";
    static const AgString  VF_DATABASES_URL = "url";
    static const AgString  VF_DATABASES_WEIGHT = "weight";
    static const AgString  VF_DATABASES_LOCAL = "local";

    static const AgString  VF_CLUSTER_FAILURE_DETECTION_TIME = "clusterFailureDetectionTime";
    static const AgString  VF_CLUSTER_FAILOVER_READONLY = "clusterFailoverReadonly";
    static const AgString  VF_CLUSTER_ROLE = "clusterRole";

    static const AgString  VF_WEBAPPS_WEB_SERVER_ENABLED = "webServerEnabled";
    static const AgString  VF_WEBAPPS_WEB_DESKTOP_ENABLED = "webDesktopEnabled";
    static const AgString  VF_WEBAPPS_WEB_SERVICE_ENABLED = "webServiceEnabled";
    static const AgString  VF_WEBAPPS_WEB_NON_SECURE_ACCESS_ENABLED = "webNonSecureAccessEnabled";
    static const AgString  VF_WEBAPPS_WEB_APPS_ALIASES = "webAppsAliases";
    static const AgString  VF_WEBAPPS_WEB_APPS_SSL_PORT = "webAppsSslPort";
    static const AgString  VF_WEBAPPS_WEB_APPS_NON_SSL_PORT = "webAppsNonSslPort";
    static const AgString  VF_WEBAPPS_WEB_WIDGETS_MODE = "webAppsWidgetsMode";
    static const AgString  VF_WEBAPPS_WEB_KEYSTORE_FILE = "webAppsKeyStoreFile";
    static const AgString  VF_WEBAPPS_WEB_KEYSTORE_PASSWORD = "webAppsKeyStorePassword";
    static const AgString  VF_WEBAPPS_WEB_KEY_PASSWORD = "webAppsKeyPassword";

    static const AgString  VF_PLUGINS_ID = "id";
    static const AgString  VF_PLUGINS_NAME = "name";
    static const AgString  VF_PLUGINS_ENABLED = "enabled";

    static const AgString  VF_ADDITIONAL_PERMISSIONS_TYPE = "type";
    static const AgString  VF_ADDITIONAL_PERMISSIONS_MASK = "mask";

    static const AgString  VF_LDAP_AUTH_ENABLED = "enabled";
    static const AgString  VF_LDAP_AUTH_ADDRESS = "address";
    static const AgString  VF_LDAP_AUTH_PORT = "port";
    static const AgString  VF_LDAP_AUTH_MAPPINGS = "mappings";
    static const AgString  VF_LDAP_AUTH_TIMEOUT = "timeout";
}
