using System.Reflection; using GB5Shared.DaprCache; using GB5Shared.Hosting; namespace EAIAdminSL; // Host-aggregation entry point (GB5Shared.Hosting.IModule) — folds EAIAdmin into PlatformHost. // Lives in PlatformHost (not GB5Framework, where GOP/EIP live) specifically so // EAIBotKnowledgeSourceBLL can make in-process DAL calls into KmsDAL (IKmDomainDAL/IKmSpaceDAL) // for tenant-consistency validation — KMS also runs in PlatformHost, and cross-process DAL calls // aren't a pattern this codebase uses anywhere. See the approved plan // (in-a-parallel-window-curried-penguin.md) "Architecture / Module placement — resolved". public class EAIAdminModule : IModule { public string DisplayName => "EAIAdmin"; public void Register(IServiceCollection services, IConfiguration configuration) { services.AddScoped(); var bll = Assembly.Load("EAIAdminBLL"); var dal = Assembly.Load("EAIAdminDAL"); services.Scan(scan => scan .FromAssemblies(bll, dal) .AddClasses(c => c.Where(t => !t.IsAbstract && !t.IsInterface && (t.Namespace == null || !t.Namespace.Contains(".DTO")))) .AsImplementedInterfaces() .WithScopedLifetime()); } public void MapEndpoints(WebApplication app) { } }