using Microsoft.Extensions.DependencyInjection;
using ZB.MOM.WW.OtOpcUa.Commons.Interfaces;

namespace ZB.MOM.WW.OtOpcUa.AdminUI.Clients;

/// <summary>Service collection extensions for Admin UI client registration.</summary>
public static class ServiceCollectionExtensions
{
    /// <summary>
    ///     Registers the Admin UI client services in the dependency injection container.
    /// </summary>
    /// <param name="services">The service collection to register clients into.</param>
    /// <returns>The same service collection, for chaining.</returns>
    public static IServiceCollection AddOtOpcUaAdminClients(this IServiceCollection services)
    {
        services.AddScoped<IAdminOperationsClient, AdminOperationsClient>();
        services.AddScoped<IFleetDiagnosticsClient, FleetDiagnosticsClient>();
        services.AddScoped<AdminProbeService>();
        return services;
    }
}
