using Core.Blueprint.Common.DependencyInjection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Thalos.Domain.Decisions;
using Thalos.DAL.DependencyInjection;
using Thalos.Service.Application.Adapters;
using Thalos.Service.Application.Oidc;
using Thalos.Service.Application.Ports;
using Thalos.Service.Application.Secrets;
using Thalos.Service.Application.Sessions;
using Thalos.Service.Application.UseCases;
namespace Thalos.Service.Application.DependencyInjection;
///
/// Registers thalos-service runtime orchestration and DAL adapters.
///
public static class ThalosServiceRuntimeServiceCollectionExtensions
{
///
/// Adds thalos-service runtime wiring aligned with blueprint runtime and thalos-dal runtime.
///
/// Service collection.
/// Service collection for fluent chaining.
public static IServiceCollection AddThalosServiceRuntime(this IServiceCollection services)
{
services.AddBlueprintRuntimeCore();
services.AddThalosDalRuntime();
services.TryAddSingleton(_ =>
new ConfigurationBuilder().AddInMemoryCollection().Build());
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
services.TryAddSingleton();
return services;
}
}