furniture-service/src/Furniture.Service.Application/DependencyInjection/FurnitureServiceRuntimeServiceCollectionExtensions.cs
2026-02-24 05:26:54 -06:00

36 lines
1.6 KiB
C#

using Core.Blueprint.Common.DependencyInjection;
using Furniture.DAL.DependencyInjection;
using Furniture.Domain.Decisions;
using Furniture.Service.Application.Adapters;
using Furniture.Service.Application.Ports;
using Furniture.Service.Application.UseCases;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
namespace Furniture.Service.Application.DependencyInjection;
/// <summary>
/// Registers furniture-service runtime orchestration and DAL adapters.
/// </summary>
public static class FurnitureServiceRuntimeServiceCollectionExtensions
{
/// <summary>
/// Adds furniture-service runtime wiring aligned with blueprint runtime and furniture-dal runtime.
/// </summary>
/// <param name="services">Service collection.</param>
/// <returns>Service collection for fluent chaining.</returns>
public static IServiceCollection AddFurnitureServiceRuntime(this IServiceCollection services)
{
services.AddBlueprintRuntimeCore();
services.AddFurnitureDalRuntime();
services.TryAddSingleton<IFurnitureAvailabilityDecisionService, FurnitureAvailabilityDecisionService>();
services.TryAddSingleton<IFurnitureAvailabilityGrpcContractAdapter, FurnitureAvailabilityGrpcContractAdapter>();
services.TryAddSingleton<IFurnitureAvailabilityReadPort, FurnitureAvailabilityReadPortDalAdapter>();
services.TryAddSingleton<ICatalogProductReadPort, CatalogProductReadPortDalAdapter>();
services.TryAddSingleton<IGetFurnitureAvailabilityUseCase, GetFurnitureAvailabilityUseCase>();
return services;
}
}