// // Copyright (c) StellaOps. Licensed under the BUSL-1.1. // using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using StellaOps.AdvisoryAI.Attestation.Storage; namespace StellaOps.AdvisoryAI.Attestation; /// /// Extension methods for registering AI attestation services. /// Sprint: SPRINT_20260109_011_001 /// public static class AiAttestationServiceExtensions { /// /// Adds AI attestation services to the service collection. /// /// The service collection. /// The service collection for chaining. public static IServiceCollection AddAiAttestationServices(this IServiceCollection services) { services.TryAddSingleton(TimeProvider.System); services.TryAddSingleton(); services.TryAddSingleton(); return services; } /// /// Adds AI attestation services with a custom time provider. /// /// The service collection. /// The time provider to use. /// The service collection for chaining. public static IServiceCollection AddAiAttestationServices( this IServiceCollection services, TimeProvider timeProvider) { services.AddSingleton(timeProvider); services.TryAddSingleton(); services.TryAddSingleton(); return services; } /// /// Adds in-memory attestation storage. Useful for testing and development. /// /// The service collection. /// The service collection for chaining. public static IServiceCollection AddInMemoryAiAttestationStore(this IServiceCollection services) { services.TryAddSingleton(); return services; } }