feat(sms): NotificationListForm adapter-gated Type selector + per-type recipients (S7)

This commit is contained in:
Joseph Doherty
2026-06-19 10:38:29 -04:00
parent 4555a3f333
commit f0c69aad83
6 changed files with 373 additions and 15 deletions
@@ -148,6 +148,14 @@ public static class ServiceCollectionExtensions
// + base-changed staleness banner; never mutates rows, not on the deploy path.
services.AddScoped<ITemplateInheritanceQueryService, TemplateInheritanceQueryService>();
// SMS Notifications (S7): the NotificationListForm Type selector offers only the
// notification channels that actually have a registered delivery adapter. The
// catalog projects the registered INotificationDeliveryAdapter set (Email + SMS,
// registered scoped by AddNotificationOutbox into this same container) to its
// distinct NotificationType set — no hardcoded {Email, Sms}. Scoped because the
// adapters it enumerates are scoped (they hold a scoped INotificationRepository).
services.AddScoped<INotificationChannelCatalog, NotificationChannelCatalog>();
// Roslyn-backed C# analysis for the Monaco script editor.
// Scoped because SharedScriptCatalog wraps a scoped service.
services.AddMemoryCache(o => o.SizeLimit = 200);