using Ablera.Serdica.Plugin.Contracts;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Ablera.Serdica.Authority.Services;
using Ablera.Serdica.Authority.Plugin.Standard;
using Ablera.Serdica.Authority.Plugins.Base.Contracts;
using Ablera.Serdica.DBModels.Serdica;
using Microsoft.AspNetCore.Identity;
using Ablera.Serdica.Authority.Plugin.Standard.Models;

namespace Ablera.Serdica.Identity.Plugin.Ldap;

public class ServiceRegistrator : IPluginServiceRegistrator
{
    public void RegisterServices(IServiceCollection services, IConfiguration configuration)
        => services
            .AddSingleton<UserAccountSettingsProvider>()
            .AddScoped<IUserManagementFacade<UserAccountIdentityUser>, UserAccountIdentityFacade>()
            .AddScoped<IUserManagementFacade<IdentityUser<string>>, IdentityManagementFacade>();
}
