using Deal.Modules.Discovery.Application.Abstractions;
using Deal.Modules.Discovery.Application.Services;
using Deal.Modules.Settings.Application.Abstractions;
using Microsoft.Extensions.DependencyInjection;
namespace Deal.Modules.Discovery.Application.Registrars;
///
/// DI-регистрация модуля Discovery.
///
public static class DiscoveryModuleRegistrar
{
///
/// Регистрирует сервисы модуля Discovery в контейнере.
///
public static IServiceCollection AddDiscoveryModule(this IServiceCollection services)
{
services.AddScoped();
services.AddScoped();
services.AddScoped();
services.AddScoped();
services.AddScoped();
services.AddSingleton();
services.AddScoped();
services.AddScoped();
services.AddScoped(sp => new DiscoveryBanGuard(
sp.GetRequiredService(),
sp.GetRequiredService()));
services.AddScoped();
return services;
}
}