using Microsoft.Extensions.DependencyInjection; using MycroForge.CLI.Commands.Interfaces; using MycroForge.CLI.Features; namespace MycroForge.CLI.Extensions; public static class ServiceCollectionExtensions { public static IServiceCollection RegisterServices(this IServiceCollection services) { // Register ProjectContext & features services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped(); // Register "m4g" services.AddScoped(); services.AddScoped, Commands.MycroForge.Init>(); services.AddScoped, Commands.MycroForge.Install>(); services.AddScoped, Commands.MycroForge.Uninstall>(); services.AddScoped, Commands.MycroForge.Hydrate>(); // Register "m4g generate" services.AddScoped, Commands.MycroForge.Generate>(); services.AddScoped, Commands.MycroForge.Generate.Service>(); services.AddScoped, Commands.MycroForge.Generate.Venv>(); // Register "m4g api" services.AddScoped, Commands.MycroForge.Api>(); services.AddScoped, Commands.MycroForge.Api.Run>(); services.AddScoped, Commands.MycroForge.Api.Generate>(); services.AddScoped, Commands.MycroForge.Api.Generate.Router>(); services.AddScoped, Commands.MycroForge.Api.Generate.Crud>(); // Register "m4g orm" services.AddScoped, Commands.MycroForge.Db>(); services.AddScoped, Commands.MycroForge.Db.Migrate>(); services.AddScoped, Commands.MycroForge.Db.Rollback>(); services.AddScoped, Commands.MycroForge.Db.Generate>(); services.AddScoped, Commands.MycroForge.Db.Generate.Entity>(); services.AddScoped, Commands.MycroForge.Db.Generate.Migration>(); services.AddScoped, Commands.MycroForge.Db.Link>(); services.AddScoped, Commands.MycroForge.Db.Link.One>(); services.AddScoped, Commands.MycroForge.Db.Link.Many>(); // Register "m4g script" services.AddScoped, Commands.MycroForge.Script>(); services.AddScoped, Commands.MycroForge.Script.Create>(); services.AddScoped, Commands.MycroForge.Script.List>(); services.AddScoped, Commands.MycroForge.Script.Edit>(); services.AddScoped, Commands.MycroForge.Script.Run>(); return services; } }