using Managing.Domain.Users;

namespace Managing.Domain.Bots
{
    public interface IBot
    {
        User User { get; set; }
        string Name { get; set; }
        void Start();
        void Stop();
        void Restart();
        string GetStatus();
        string GetName();

        /// <summary>
        /// Gets the total runtime of the bot since it was started
        /// </summary>
        /// <returns>TimeSpan representing the runtime, or TimeSpan.Zero if the bot is not running</returns>
        TimeSpan GetRuntime();

        string Identifier { get; set; }
        void SaveBackup();
        void LoadBackup(BotBackup backup);
    }
}