using Microsoft.Extensions.DependencyInjection; namespace ScadaLink.SiteCallAudit; /// /// Composition root for the Site Call Audit (#22) component. /// /// /// /// M3 Bundle C ships the ingest-only minimum surface (the actor itself); the /// full DI surface — reconciliation puller, KPI projector, central→site /// Retry/Discard relay, options + validators — is deferred to a follow-up. /// /// /// The repository (ISiteCallAuditRepository) is registered by /// ScadaLink.ConfigurationDatabase.ServiceCollectionExtensions.AddConfigurationDatabase, /// so callers (the Host on the central node) must also call that. The actor's /// Props are wired up in Host registration (Bundle F); this extension /// is currently a no-op placeholder kept for symmetry with the AuditLog and /// NotificationOutbox composition roots — adding it now means consumers can /// reference the method without re-touching the Host project later. /// /// public static class ServiceCollectionExtensions { /// /// Registers Site Call Audit (#22) services. Currently a no-op /// placeholder — Bundle F will populate this with the actor's Props /// factory + options bindings. The method is exposed now so the Host /// wiring call already exists at the API boundary. /// public static IServiceCollection AddSiteCallAudit(this IServiceCollection services) { ArgumentNullException.ThrowIfNull(services); // Actor props are constructed in Host wiring (Bundle F). This // extension is a placeholder for future config + DI. return services; } }