using System;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Model.Updates;
namespace Jellyfin.Server.Migrations.Routines
{
    /// 
    /// Migration to initialize system configuration with the default plugin repository.
    /// 
    public class AddDefaultPluginRepository : IMigrationRoutine
    {
        private readonly IServerConfigurationManager _serverConfigurationManager;
        private readonly RepositoryInfo _defaultRepositoryInfo = new RepositoryInfo
        {
            Name = "Jellyfin Stable",
            Url = "https://repo.jellyfin.org/releases/plugin/manifest-stable.json"
        };
        /// 
        /// Initializes a new instance of the  class.
        /// 
        /// Instance of the  interface.
        public AddDefaultPluginRepository(IServerConfigurationManager serverConfigurationManager)
        {
            _serverConfigurationManager = serverConfigurationManager;
        }
        /// 
        public Guid Id => Guid.Parse("EB58EBEE-9514-4B9B-8225-12E1A40020DF");
        /// 
        public string Name => "AddDefaultPluginRepository";
        /// 
        public bool PerformOnNewInstall => true;
        /// 
        public void Perform()
        {
            _serverConfigurationManager.Configuration.PluginRepositories = new[] { _defaultRepositoryInfo };
            _serverConfigurationManager.SaveConfiguration();
        }
    }
}