using System; using System.Collections.Generic; using System.Linq; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.DependencyInjection; using PolyTrader.Core.Modularity; namespace PolyTrader.Web.Endpoints { public static class ModulesEndpoints { public static IEndpointRouteBuilder MapModulesEndpoints(this IEndpointRouteBuilder routes) { var group = routes.MapGroup("/api/modules"); group.MapGet("/", (IServiceProvider sp) => { var activeModules = sp.GetServices().ToList(); var activeNames = activeModules.Select(m => m.Name).ToHashSet(StringComparer.OrdinalIgnoreCase); var knownModules = new[] { "CopyTrading", "ResolutionFarming", "Supervisor", "Accounting" }; var list = knownModules.Select(name => new { name, isActive = activeNames.Contains(name) }).ToList(); return Results.Ok(list); }); return routes; } } }