using Microsoft.Extensions.DependencyInjection;
using Tiku.Application.Tenancy;
using Tiku.Application.TenantAdmin;
using Tiku.Application.Jobs;
using Tiku.Infrastructure.Tenancy;
using Tiku.Infrastructure.TenantAdmin;
using Tiku.Infrastructure.TenantAdmin.Dashboard;

namespace Tiku.Infrastructure;

internal static class TenantAdminModule
{
    internal static IServiceCollection AddTenantAdminModule(this IServiceCollection services)
    {
        services.AddScoped<ITenantAdminDirectService, TenantAdminDirectService>();
        services.AddScoped<ITenantOnboardingService, TenantOnboardingService>();
        services.AddScoped<ITenantLifecycleService, TenantLifecycleService>();
        services.AddScoped<IBackgroundJobHandler, StatisticsAggregationJobHandler>();
        return services;
    }
}
