feat(notification-outbox): per-site KPI snapshot type + repository contract
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
namespace ScadaLink.Commons.Types.Notifications;
|
||||
|
||||
/// <summary>
|
||||
/// Point-in-time notification-outbox metrics scoped to a single source site.
|
||||
/// The per-site counterpart of <see cref="NotificationKpiSnapshot"/>; surfaced
|
||||
/// in the per-site breakdown table on the Notification KPIs page.
|
||||
/// </summary>
|
||||
/// <param name="SourceSiteId">The site identifier these metrics are scoped to.</param>
|
||||
/// <param name="QueueDepth">Count of this site's non-terminal rows (Pending + Retrying).</param>
|
||||
/// <param name="StuckCount">
|
||||
/// Count of this site's non-terminal rows whose <c>CreatedAt</c> is older than the stuck cutoff.
|
||||
/// </param>
|
||||
/// <param name="ParkedCount">Count of this site's rows in the Parked status.</param>
|
||||
/// <param name="DeliveredLastInterval">
|
||||
/// Count of this site's Delivered rows whose <c>DeliveredAt</c> is at or after the
|
||||
/// "delivered since" timestamp.
|
||||
/// </param>
|
||||
/// <param name="OldestPendingAge">
|
||||
/// Age of this site's oldest non-terminal row, or <c>null</c> when it has none.
|
||||
/// </param>
|
||||
public record SiteNotificationKpiSnapshot(
|
||||
string SourceSiteId,
|
||||
int QueueDepth,
|
||||
int StuckCount,
|
||||
int ParkedCount,
|
||||
int DeliveredLastInterval,
|
||||
TimeSpan? OldestPendingAge);
|
||||
Reference in New Issue
Block a user