using FKGees.DocsDefinitions.Decrets;
using Microsoft.Extensions.DependencyInjection;

namespace FKGees.Extensions;

internal static class ServiceCollectionExtensions
{
    internal static IServiceCollection AddDecretsDefinitions(this IServiceCollection services)
    { 
        services.AddSingleton<IDecretsDefinition, Przecena>();
        services.AddSingleton<IDecretsDefinition, MmPlus>();
        services.AddSingleton<IDecretsDefinition, MmMinus>();
        services.AddSingleton<IDecretsDefinition, Pz>();
        services.AddSingleton<IDecretsDefinition, Wz>();
        services.AddSingleton<IDecretsDefinition, PzFaktura>();
        services.AddSingleton<IDecretsDefinition, RapFisk>();
        services.AddSingleton<IDecretsDefinition, KorDetal>();
        services.AddSingleton<IDecretsDefinition, FaktSprz>();
        services.AddSingleton<IDecretsDefinition, KwBony>();
        services.AddSingleton<IDecretsDefinition, KwInne>();
        services.AddSingleton<IDecretsDefinition, KwLotto>();
        services.AddSingleton<IDecretsDefinition, KwOpakowania>();
        services.AddSingleton<IDecretsDefinition, KwPolcard>();
        services.AddSingleton<IDecretsDefinition, KwPomylkaKasjera>();
        services.AddSingleton<IDecretsDefinition, KwUtarg>();
        services.AddSingleton<IDecretsDefinition, KpInne>();
        services.AddSingleton<IDecretsDefinition, KpKasy>();
        services.AddSingleton<IDecretsDefinition, KpKaucjaZaOpakowania>();
        services.AddSingleton<IDecretsDefinition, KpKaucjaZDokUtargu>();
        services.AddSingleton<IDecretsDefinition, KwKaucjaZDokUtargu>();
        services.AddSingleton<IDecretsDefinition, KpLotto>();
        services.AddSingleton<IDecretsDefinition, KpPaysafe>();
        services.AddSingleton<IDecretsDefinition, KpRachunki>();
        return services;
    }

    internal static IServiceCollection AddRegistersDefinitions(this IServiceCollection services)
    {
        services.AddScoped<IRegistersDefinition, Fz>();
        services.AddScoped<IRegistersDefinition, Fa>();
        return services;
    }
}