namespace ZB.MOM.WW.ScadaBridge.SiteCallAudit;
///
/// Published on the actor system EventStream when a site's Site Call Audit
/// reconciliation puller transitions into or out of the "pinned" state — the
/// composite (UpdatedAtUtc, TrackedOperationId) keyset cursor could not
/// advance yet the site still reports MoreAvailable=true, so the backlog
/// tail cannot be drained. In practice this only happens against a legacy site
/// that ignores the after_id keyset field (a modern site drains a
/// single-timestamp burst via the id tiebreak). Mirrors
/// SiteAuditTelemetryStalledChanged: only transitions are published
/// (Pinned=true on latch, Pinned=false when progress resumes), so
/// a downstream health subscriber never sees a flood of redundant notifications.
/// The dead-end that the previous implementation only logged is now a
/// health-observable condition.
///
/// The site whose reconciliation cursor pinned (or unpinned).
/// True on entering the pinned state; false when the cursor makes progress again.
public sealed record SiteCallReconciliationPinnedChanged(string SiteId, bool Pinned);