using System; namespace ZB.MOM.WW.OtOpcUa.Host.Domain { /// /// Point-in-time runtime state of a single Galaxy runtime host ($WinPlatform or $AppEngine) /// as tracked by the GalaxyRuntimeProbeManager. Surfaced on the status dashboard and /// consumed by HealthCheckService so operators can detect a stopped host before /// downstream clients notice the stale data. /// public sealed class GalaxyRuntimeStatus { /// /// Gets or sets the Galaxy tag_name of the host (e.g., DevPlatform or /// DevAppEngine). /// public string ObjectName { get; set; } = ""; /// /// Gets or sets the Galaxy gobject_id of the host. /// public int GobjectId { get; set; } /// /// Gets or sets the Galaxy template category name — $WinPlatform or /// $AppEngine. Used by the dashboard to group hosts by kind. /// public string Kind { get; set; } = ""; /// /// Gets or sets the current runtime state. /// public GalaxyRuntimeState State { get; set; } /// /// Gets or sets the UTC timestamp of the most recent probe callback, whether it /// reported success or failure. before the first callback. /// public DateTime? LastStateCallbackTime { get; set; } /// /// Gets or sets the UTC timestamp of the most recent transition. /// Backs the dashboard "Since" column. in the initial Unknown /// state before any transition. /// public DateTime? LastStateChangeTime { get; set; } /// /// Gets or sets the last ScanState value received from the probe, or /// before the first update or when the last callback carried /// a non-success item status (no value delivered). /// public bool? LastScanState { get; set; } /// /// Gets or sets the detail message from the most recent failure callback, cleared on /// the next successful ScanState = true delivery. /// public string? LastError { get; set; } /// /// Gets or sets the cumulative number of callbacks where ScanState = true. /// public long GoodUpdateCount { get; set; } /// /// Gets or sets the cumulative number of callbacks where ScanState != true /// or the item status reported failure. /// public long FailureCount { get; set; } } }