using Microsoft.Extensions.DependencyInjection; using ScadaLink.TemplateEngine.Flattening; using ScadaLink.TemplateEngine.Services; using ScadaLink.TemplateEngine.Validation; namespace ScadaLink.TemplateEngine; public static class ServiceCollectionExtensions { public static IServiceCollection AddTemplateEngine(this IServiceCollection services) { services.AddScoped(); services.AddScoped(); // Flattening services (stateless utilities) services.AddTransient(); services.AddTransient(); services.AddTransient(); // Validation services (stateless utilities) services.AddTransient(); services.AddTransient(); services.AddTransient(); // Domain services (depend on scoped DbContext / repositories) services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); // Note: CycleDetector, CollisionDetector, LockEnforcer, and TemplateResolver // are static utility classes and do not require DI registration. return services; } public static IServiceCollection AddTemplateEngineActors(this IServiceCollection services) { // Phase 0: placeholder for Akka actor registration return services; } }