9cff87fe85
Remove project bookkeeping citations from shipped code comments across the solution: hyphenated task IDs (WP-14, StoreAndForward-025), milestone/task/ issue refs (M3, Task 4, Audit Log #23, #21), Bundle X task-bundle labels, and C/D/K/S/T phase labels. Comment text only — no code logic, string/log literals, or XML-doc structure changed. Genuine descriptions are preserved (only the citation is stripped), and technical lookalikes are retained (UTF-8, SHA-256, T00:00:00, M365, UTC-5, pre-C4/pre-C5 schema versions). Flagged by the new CommentChecker TaskReferenceInComment / TrackingReferenceInComment checks plus targeted grep passes; full solution builds clean, append-only guard tests pass.
84 lines
3.4 KiB
C#
84 lines
3.4 KiB
C#
namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Notification;
|
|
|
|
/// <summary>
|
|
/// Site -> Central: submit a notification for central delivery.
|
|
/// Fire-and-forget with ack; the site retries until a <see cref="NotificationSubmitAck"/> is received.
|
|
/// </summary>
|
|
/// <param name="OriginExecutionId">
|
|
/// The originating script execution's <c>ExecutionId</c>. Stamped at
|
|
/// <c>Notify.Send</c> time and carried, inside the serialized payload, through the site
|
|
/// store-and-forward buffer so the central dispatcher can echo it onto the
|
|
/// <c>NotifyDeliver</c> audit rows. Additive trailing member — null for messages built
|
|
/// before the field existed, or for notifications raised outside a script execution.
|
|
/// </param>
|
|
/// <param name="OriginParentExecutionId">
|
|
/// The originating routed script execution's <c>ParentExecutionId</c>.
|
|
/// Stamped at <c>Notify.Send</c> time and carried, inside the serialized payload, through
|
|
/// the site store-and-forward buffer so the central dispatcher can echo it onto the
|
|
/// <c>NotifyDeliver</c> audit rows. Additive trailing member — null for messages built
|
|
/// before the field existed, or for non-routed runs.
|
|
/// </param>
|
|
/// <param name="SourceNode">
|
|
/// The cluster node on which the notification was emitted — `node-a` / `node-b` for site
|
|
/// submissions, `central-a` / `central-b` for central-originated rows. Stamped by the
|
|
/// emitting node from <c>INodeIdentityProvider</c> and carried, inside the serialized
|
|
/// payload, through the site store-and-forward buffer so the central dispatcher can
|
|
/// persist it on the <c>Notifications</c> row and echo it onto the <c>NotifyDeliver</c>
|
|
/// audit rows. Additive trailing member — null for messages built before the field
|
|
/// existed.
|
|
/// </param>
|
|
public record NotificationSubmit(
|
|
string NotificationId,
|
|
string ListName,
|
|
string Subject,
|
|
string Body,
|
|
string SourceSiteId,
|
|
string? SourceInstanceId,
|
|
string? SourceScript,
|
|
DateTimeOffset SiteEnqueuedAt,
|
|
Guid? OriginExecutionId = null,
|
|
Guid? OriginParentExecutionId = null,
|
|
string? SourceNode = null);
|
|
|
|
/// <summary>
|
|
/// Central -> Site: ack sent after the notification row is persisted.
|
|
/// Idempotent — safe to re-send for the same <see cref="NotificationId"/>.
|
|
/// </summary>
|
|
public record NotificationSubmitAck(
|
|
string NotificationId,
|
|
bool Accepted,
|
|
string? Error);
|
|
|
|
/// <summary>
|
|
/// Site -> Central: query the central delivery status for a <see cref="NotificationId"/>.
|
|
/// </summary>
|
|
public record NotificationStatusQuery(
|
|
string CorrelationId,
|
|
string NotificationId);
|
|
|
|
/// <summary>
|
|
/// Central -> Site: response carrying the current delivery status for a queried notification.
|
|
/// </summary>
|
|
public record NotificationStatusResponse(
|
|
string CorrelationId,
|
|
bool Found,
|
|
string Status,
|
|
int RetryCount,
|
|
string? LastError,
|
|
DateTimeOffset? DeliveredAt);
|
|
|
|
/// <summary>
|
|
/// Notification Outbox: the delivery status of a notification, as returned to a
|
|
/// script by <c>Notify.Status(id)</c>.
|
|
///
|
|
/// <see cref="Status"/> is either a central status (<c>Pending</c>, <c>Retrying</c>,
|
|
/// <c>Delivered</c>, <c>Parked</c>, <c>Discarded</c>), the site-local <c>Forwarding</c>
|
|
/// state (the notification is still buffered at the site and has not yet been
|
|
/// forwarded/acked), or <c>Unknown</c> (no central row and not buffered locally).
|
|
/// </summary>
|
|
public record NotificationDeliveryStatus(
|
|
string Status,
|
|
int RetryCount,
|
|
string? LastError,
|
|
DateTimeOffset? DeliveredAt);
|