using ZB.MOM.WW.OtOpcUa.Configuration.Enums;
namespace ZB.MOM.WW.OtOpcUa.AdminUI.Uns;
/// A tag row for the equipment page's Tags tab table — display columns plus the id used to
/// open the edit modal. RowVersion is re-read fresh on delete (matching the tree's delete path).
public sealed record EquipmentTagRow(
string TagId, string Name, string DriverInstanceId, string DataType, TagAccessLevel AccessLevel);
/// A virtual-tag row for the equipment page's Virtual Tags tab table.
public sealed record EquipmentVirtualTagRow(string VirtualTagId, string Name, string DataType, string ScriptId, bool Enabled);
///
/// A UNS tag-reference row for the equipment page's Tags tab table (v3 reference-only equipment). Each
/// row projects a together with the backing raw
/// tag's inherited (read-only) datatype/access and computed RawPath. The effective name is the
/// DisplayNameOverride when set, else the backing raw tag's Name. RowVersion is the
/// reference row's concurrency token, echoed on the override-set / remove mutations.
///
/// The reference's stable logical id (the mutation key).
/// Override else the raw tag's Name — the UNS leaf name.
/// The backing raw tag's computed RawPath (folder/driver/device/group/tag).
/// Inherited OPC UA built-in type name from the raw tag (read-only).
/// Inherited access level from the raw tag (read-only).
/// The optional display-name override; null = use the raw name.
/// Sibling display ordering within the equipment's Tags list.
/// The reference row's optimistic-concurrency token.
public sealed record EquipmentReferenceRow(
string UnsTagReferenceId,
string EffectiveName,
string RawPath,
string DataType,
TagAccessLevel AccessLevel,
string? DisplayNameOverride,
int SortOrder,
byte[] RowVersion);