package com.atlassian.bitbucket.internal.stp;

/**
 * Property keys.
 * <p>
 * These keys will be resolved in STP to i18n strings (when showing the report in the UI) and
 * to XML element names (when generating the support ZIP).
 *
 * @since 2.5
 */
final class StpKeys {

    static final String STP_BITBUCKET = "stp.properties.bitbucket";

    static final String GENERAL_INFO = STP_BITBUCKET + ".info";
    static final String APPLICATION_BASE_URL = STP_BITBUCKET + ".base.url";
    static final String APPLICATION_BUILD_NUMBER = STP_BITBUCKET + ".build.number";
    static final String APPLICATION_BUILD_TIMESTAMP = STP_BITBUCKET + ".build.timestamp";
    static final String APPLICATION_BUILD_VERSION = STP_BITBUCKET + ".build.version";
    static final String APPLICATION_DISPLAY_NAME = STP_BITBUCKET + ".display.name";
    static final String APPLICATION_HOME = STP_BITBUCKET + ".home";
    static final String DEFAULT_TIME_ZONE = STP_BITBUCKET + ".time.zone";
    static final String CAPTCHA_MAX_ATTEMPTS = STP_BITBUCKET + ".captcha.max.attempts";
    static final String COMMIT_HASH = STP_BITBUCKET + ".commit.hash";
    static final String CPUS = STP_BITBUCKET + ".cpus";
    static final String JVM_TIME_ZONE = STP_BITBUCKET + ".jvm.time.zone";
    static final String LICENSE_SEN = STP_BITBUCKET + ".license.sen";
    static final String LICENSE_SERVER_ID = STP_BITBUCKET + ".license.server.id";

    static final String MAIL = STP_BITBUCKET + ".mail";
    static final String MAIL_PROTOCOL = MAIL + ".protocol";
    static final String MAIL_REQUIRE_TLS = MAIL + ".require.tls";
    static final String MAIL_SERVER_ADDRESS = MAIL + ".server.address";
    static final String MAIL_SERVER_HOSTNAME = MAIL + ".server.hostname";
    static final String MAIL_SERVER_PORT = MAIL + ".server.port";
    static final String MAIL_USERNAME = MAIL + ".username";
    static final String MAIL_USE_TLS = MAIL + ".use.tls";

    static final String DB = STP_BITBUCKET + ".db";
    static final String DB_DRIVER_NAME = DB + ".driver.name";
    static final String DB_DRIVER_VERSION = DB + ".driver.version";
    static final String DB_CONNECTION_URL = DB + ".connection.url";

    static final String HTTP_SCM_HOSTING = STP_BITBUCKET + ".http.scm";
    static final String HTTP_SCM_HOSTING_ENABLED = HTTP_SCM_HOSTING + ".enabled";

    static final String CLUSTER = STP_BITBUCKET + ".cluster";
    static final String CLUSTER_AVAILABLE = CLUSTER + ".available";
    static final String CLUSTER_CLUSTERED = CLUSTER + ".clustered";
    static final String CLUSTER_NODE = STP_BITBUCKET + ".cluster-node";
    static final String CLUSTER_NODE_ID = CLUSTER_NODE + ".id";
    static final String CLUSTER_NODE_ADDRESS = CLUSTER_NODE + ".address";
    static final String CLUSTER_NODE_LOCAL = CLUSTER_NODE + ".local";

    // Since 3.10
    static final String FS_INFO = STP_BITBUCKET + ".fs";
    static final String FS_DESCRIPTION = FS_INFO + ".description";
    static final String FS_HOME = FS_INFO + ".home";
    static final String FS_NAME = FS_INFO + ".name";
    static final String FS_PATH = FS_INFO + ".path";
    static final String FS_SHARED_HOME = FS_INFO + ".shared-home";
    static final String FS_SIZE_FREE = FS_INFO + ".size.free";
    static final String FS_SIZE_TOTAL = FS_INFO + ".size.total";
    static final String FS_TYPE = FS_INFO + ".type";

    static final String PROJECT = STP_BITBUCKET + ".project";
    static final String PROJECT_DESCRIPTION = PROJECT + ".description";
    static final String PROJECT_ID = PROJECT + ".id";
    static final String PROJECT_IS_PUBLIC = PROJECT + ".is.public";
    static final String PROJECT_KEY = PROJECT + ".key";
    static final String PROJECT_MARKED_AS_PUBLIC = PROJECT + ".marked.public";
    static final String PROJECT_NAME = PROJECT + ".name";

    static final String REPOSITORY = STP_BITBUCKET + ".repository";
    static final String REPOSITORY_ID = REPOSITORY + ".id";
    static final String REPOSITORY_IS_PUBLIC = REPOSITORY + ".is.public";
    static final String REPOSITORY_MARKED_AS_PUBLIC = REPOSITORY + ".marked.public";
    static final String REPOSITORY_NAME = REPOSITORY + ".name";
    static final String REPOSITORY_SIZE = REPOSITORY + ".size";
    static final String REPOSITORY_SLUG = REPOSITORY + ".slug";
    static final String REPOSITORY_STATE = REPOSITORY + ".state";
    static final String REPOSITORY_STATUS_MESSAGE = REPOSITORY + ".status-message";
    static final String REPOSITORY_TYPE = REPOSITORY + ".type";

    static final String PULL_REQUEST = REPOSITORY + ".pull.requests";
    static final String OPEN_PULL_REQUESTS = PULL_REQUEST + ".open";
    static final String MERGED_PULL_REQUESTS = PULL_REQUEST + ".merged";
    static final String DECLINED_PULL_REQUESTS = PULL_REQUEST + ".declined";

    static final String PLUGINS_COMMIT_HOOKS_MODULES = STP_BITBUCKET + ".hooks.modules";
    static final String PLUGINS_COMMIT_HOOKS_MODULE = STP_BITBUCKET + ".hooks.module";
    static final String PLUGINS_COMMIT_HOOKS_KEY = PLUGINS_COMMIT_HOOKS_MODULE + ".key";
    static final String PLUGINS_COMMIT_HOOKS_DESCRIPTION = PLUGINS_COMMIT_HOOKS_MODULE + ".description";
    static final String PLUGINS_COMMIT_HOOKS_CLASS = PLUGINS_COMMIT_HOOKS_MODULE + ".class";
    static final String PLUGINS_COMMIT_HOOKS_SOURCE = PLUGINS_COMMIT_HOOKS_MODULE + ".plugin.key";

    static final String REPOSITORY_HOOKS = STP_BITBUCKET + ".repository.hooks";
    static final String REPOSITORY_HOOK = STP_BITBUCKET + ".repository.hook";
    static final String REPOSITORY_HOOK_KEY = REPOSITORY_HOOK + ".key";
    static final String REPOSITORY_HOOK_CONFIG = REPOSITORY_HOOK + ".config";
}
