using Microsoft.Extensions.DependencyInjection;
using OmsorgCore.Application.Abstractions;
using OmsorgCore.Application.Services;

namespace OmsorgCore.Application;

public static class DependencyInjection
{
    public static IServiceCollection AddApplication(this IServiceCollection services)
    {
        services.AddScoped<IPermissionService, PermissionService>();
        services.AddScoped<IAuthService, AuthService>();
        services.AddScoped<IEmployeeService, EmployeeService>();
        services.AddScoped<IFacilityService, FacilityService>();
        services.AddScoped<IFacilityContactService, FacilityContactService>();
        services.AddScoped<IFacilityQualificationRateService, FacilityQualificationRateService>();
        services.AddScoped<IEmployeeFacilityDistanceService, EmployeeFacilityDistanceService>();
        services.AddScoped<IContractService, ContractService>();
        services.AddScoped<IOrderService, OrderService>();
        services.AddScoped<IAssignmentService, AssignmentService>();
        services.AddScoped<IAbsenceService, AbsenceService>();
        services.AddScoped<IAssignmentValidationSettingsService, AssignmentValidationSettingsService>();
        services.AddScoped<ITimeEntryService, TimeEntryService>();
        services.AddScoped<IDocumentService, DocumentService>();
        services.AddScoped<IValueListService, ValueListService>();
        services.AddScoped<ISessionAdminService, SessionAdminService>();
        services.AddScoped<IPasswordResetService, PasswordResetService>();
        services.AddScoped<IUserService, UserService>();
        services.AddScoped<IRoleService, RoleService>();
        services.AddScoped<IAuditLogService, AuditLogService>();

        return services;
    }
}
