class BaseConsts {
    constructor(
        destination_paths,
        destination_paths_files,
        destination_root_path,
        platform_specific,
        ha_install_list,
        ignore_install_folders
    ) {
        this.ROOT_FOLDER_REGEX = /Sisense\.[0-9a-zA-Z_\-]+\.\d{1,2}\.\d{1,2}\.\d{1,3}/;
        this.PLUGIN_NAME_REGEX = /\.[a-zA-z0-9\\-]+\./;
        this.PRIORITY_ORDER = [
            "configuration_rewriters",
            "middlewares",
            "client_side_addons",
            "server_side_addons",
            "external_addons",
            "microservice",
            "translations"
        ];
        this.PROTECTED_FILES = ["config.js", "config.6.js", "config.json"];
        this.PLUGIN_SOURCES_FOLDER = "addon_sources";
        this.PROTECTED_FOLDERS = ["resources"];
        this.BACKUP_FOLDER = "backup_";
        this.EXTENSION_PATH = "install_extension/Extension.js";
        this.DESTINATION_PATHS = destination_paths;
        this.DESTINATION_PATHS_FILES = destination_paths_files;
        this.DESTINATION_ROOT_PATH = destination_root_path;
        this.PLATFORM_SPECIFIC = platform_specific;
        this.HA_INSTALL_LIST = ha_install_list;
        this.IGNORE_INSTALL_FOLDERS = ignore_install_folders;
        this.COMMAND_KEYS = {
            "i": { "name": 'install', "values": [] },
            "r": { "name": 'remove', "values": [] },
            "u": { "name": 'update', "values": [] },
            "c": { "name": 'check', "values": [] },
            "h": { "name": 'help', "values": [] },
            "v": { "name": 'version', "values": [] }
        };
        this.REMOVE_BY_NAME_COMPONENT = ["translations"];
    }
}

module.exports = BaseConsts;
