using Microsoft.Extensions.DependencyInjection; using Journal.Core.Repositories; using Journal.Core.Services.Ai; using Journal.Core.Services.Config; using Journal.Core.Services.Database; using Journal.Core.Services.Entries; using Journal.Core.Services.Fragments; using Journal.Core.Services.Lists; using Journal.Core.Services.Logging; using Journal.Core.Services.Sidecar; using Journal.Core.Services.Speech; using Journal.Core.Services.Conversations; using Journal.Core.Services.Todos; using Journal.Core.Services.Vault; namespace Journal.Core; public static class ServiceCollectionExtensions { public static IServiceCollection AddFragmentServices(this IServiceCollection services) { services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddTransient(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(provider => { var config = provider.GetRequiredService().Current; return new DisabledAiService(config.AiProvider); }); services.AddSingleton( new DisabledSpeechBridgeService("none")); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(new DisabledCoachService()); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); return services; } }