#ifndef SERVICES_HPP
#define SERVICES_HPP

#include <string>
#include <vector>
#include <set>

namespace dropshell {

    struct ServiceInfo {
        std::string service_name;
        std::string template_name;
        std::string local_service_path;
        std::string local_template_path;
        std::string local_template_default_env_path;
    };
    
    std::vector<ServiceInfo> get_server_services_info(const std::string& server_name);
    ServiceInfo get_service_info(const std::string& server_name, const std::string& service_name);
    std::set<std::string> get_used_commands(const std::string& server_name, const std::string& service_name);

    // list all backups for a given service (across all servers)
    std::set<std::string> list_backups(const std::string& server_name, const std::string& service_name);

    bool create_service(const std::string& server_name, const std::string& template_name, const std::string& service_name, bool silent=false);
} // namespace dropshell

#endif
