feat(ui): add Node column + filter to NotificationOutbox grid

This commit is contained in:
Joseph Doherty
2026-05-23 18:04:59 -04:00
parent bb29d65a94
commit b9c017136d
6 changed files with 81 additions and 6 deletions

View File

@@ -17,7 +17,8 @@ public record NotificationOutboxQueryRequest(
DateTimeOffset? From,
DateTimeOffset? To,
int PageNumber,
int PageSize);
int PageSize,
string? SourceNodeFilter = null);
/// <summary>
/// A single notification row summarised for outbox UI display.
@@ -34,7 +35,8 @@ public record NotificationSummary(
string? SourceInstanceId,
DateTimeOffset CreatedAt,
DateTimeOffset? DeliveredAt,
bool IsStuck);
bool IsStuck,
string? SourceNode = null);
/// <summary>
/// Central -> Outbox UI: paginated response for a <see cref="NotificationOutboxQueryRequest"/>.

View File

@@ -18,6 +18,11 @@ namespace ScadaLink.Commons.Types.Notifications;
/// <param name="StuckCutoff">Rows with <c>CreatedAt</c> older than this count as stuck.</param>
/// <param name="From">Inclusive lower bound on <c>CreatedAt</c>.</param>
/// <param name="To">Inclusive upper bound on <c>CreatedAt</c>.</param>
/// <param name="SourceNode">
/// Restrict to notifications originating at a specific cluster node (e.g.
/// <c>"central-a"</c>, <c>"site-plant-a-node-a"</c>). Exact match; <c>null</c>
/// means "do not constrain".
/// </param>
public record NotificationOutboxFilter(
NotificationStatus? Status = null,
NotificationType? Type = null,
@@ -27,4 +32,5 @@ public record NotificationOutboxFilter(
bool StuckOnly = false,
DateTimeOffset? StuckCutoff = null,
DateTimeOffset? From = null,
DateTimeOffset? To = null);
DateTimeOffset? To = null,
string? SourceNode = null);