using System; using System.Linq; using Microsoft.Extensions.DependencyInjection; using Svrnty.CQRS.Events.Abstractions.Subscriptions; namespace Svrnty.CQRS.Events.PostgreSQL.Subscriptions; /// /// Service collection extensions for PostgreSQL subscription storage. /// public static class ServiceCollectionExtensions { /// /// Add PostgreSQL subscription store to the service collection. /// Replaces any existing ISubscriptionStore registration. /// public static IServiceCollection AddPostgresSubscriptionStore(this IServiceCollection services) { // Remove existing IPersistentSubscriptionStore registration (e.g., in-memory) var descriptor = services.FirstOrDefault(d => d.ServiceType == typeof(IPersistentSubscriptionStore)); if (descriptor != null) { services.Remove(descriptor); } // Register PostgreSQL implementation services.AddSingleton(); return services; } }