feat(validation): require TagConfig.FullName on Galaxy alias tags; reframe Tag doc

This commit is contained in:
Joseph Doherty
2026-06-11 21:21:32 -04:00
parent 53116bdd83
commit 9f13101896
3 changed files with 99 additions and 8 deletions
@@ -3,9 +3,11 @@ using ZB.MOM.WW.OtOpcUa.Configuration.Enums;
namespace ZB.MOM.WW.OtOpcUa.Configuration.Entities;
/// <summary>
/// One canonical tag (signal) in a cluster's generation. Per decision #110:
/// <see cref="EquipmentId"/> is REQUIRED when the driver is in an Equipment-kind namespace
/// and NULL when in SystemPlatform-kind namespace (Galaxy hierarchy preserved).
/// One canonical tag (signal) in a cluster's generation. <see cref="EquipmentId"/> set ⟺ the
/// tag participates in the Equipment tree, regardless of the driver's namespace kind. A
/// <c>GalaxyMxGateway</c>-bound equipment tag is an <em>alias</em> — a Galaxy attribute surfaced
/// under a UNS name, with its Galaxy reference carried in <c>TagConfig.FullName</c>.
/// <see cref="EquipmentId"/> is NULL for SystemPlatform mirror tags (FolderPath-scoped).
/// </summary>
public sealed class Tag
{
@@ -30,8 +32,8 @@ public sealed class Tag
public string? DeviceId { get; set; }
/// <summary>
/// Required when driver is in Equipment-kind namespace; NULL when in SystemPlatform-kind.
/// Cross-table invariant enforced by sp_ValidateDraft (decision #110).
/// Set when the tag belongs to an Equipment (driver tag OR Galaxy alias); NULL for
/// SystemPlatform mirror tags.
/// </summary>
public string? EquipmentId { get; set; }