namespace ScadaLink.AuditLog.Central; /// /// Published on the actor-system EventStream by /// after each successful partition switch-out. Downstream consumers (Bundle E /// central health collector, ops dashboards, audit trails) subscribe so a /// purge action is observable without the actor needing to know about any /// specific subscriber. /// /// /// The pf_AuditLog_Month lower-bound boundary that was switched out — i.e. /// the first instant of the purged month in UTC. /// /// /// Approximate row count purged from the partition, sampled BEFORE the /// switch. Exact accounting would require a post-switch scan of the staging /// table, which the dance drops immediately, so this is the closest /// observable proxy. Zero is a valid value when the actor's enumerator /// included a partition the operator subsequently emptied by hand. /// /// /// Wall-clock time spent inside SwitchOutPartitionAsync for this /// boundary, in milliseconds. Useful for spotting the rare slow purge /// without spinning up dedicated telemetry. /// public sealed record AuditLogPurgedEvent( DateTime MonthBoundary, long RowsDeleted, long DurationMs);