namespace ZB.MOM.WW.OtOpcUa.Configuration.Entities; /// /// UNS level-5 entity. Only for drivers in Equipment-kind namespaces. /// public sealed class Equipment { /// Gets or sets the row identifier for this equipment. public Guid EquipmentRowId { get; set; } /// /// System-generated stable internal logical ID. Format: 'EQ-' + first 12 hex chars of EquipmentUuid. /// NEVER operator-supplied, NEVER in CSV imports, NEVER editable in Admin UI. /// public required string EquipmentId { get; set; } /// UUIDv4, IMMUTABLE across all generations of the same EquipmentId. Downstream-consumer join key. public Guid EquipmentUuid { get; set; } // v3: equipment no longer binds a driver or device. It references existing raw tags via // UnsTagReference and hosts VirtualTags + ScriptedAlarms. The old DriverInstanceId / DeviceId // binding columns are retired. /// Logical FK to . public required string UnsLineId { get; set; } /// UNS level 5 segment, matches ^[a-z0-9-]{1,32}$. public required string Name { get; set; } // Operator-facing / external-system identifiers /// Operator colloquial id (e.g. "machine_001"). Unique within cluster. Required. public required string MachineCode { get; set; } /// ERP equipment id. Unique fleet-wide via . Primary browse identifier in Admin UI. public string? ZTag { get; set; } /// SAP PM equipment id. Unique fleet-wide via . public string? SAPID { get; set; } // OPC UA Companion Spec OPC 40010 Machinery Identification fields. // All nullable so equipment can be added before identity is fully captured. /// Gets or sets the manufacturer name for this equipment. public string? Manufacturer { get; set; } /// Gets or sets the model number or designation for this equipment. public string? Model { get; set; } /// Gets or sets the serial number for this equipment. public string? SerialNumber { get; set; } /// Gets or sets the hardware revision level for this equipment. public string? HardwareRevision { get; set; } /// Gets or sets the software revision level for this equipment. public string? SoftwareRevision { get; set; } /// Gets or sets the year of construction for this equipment. public short? YearOfConstruction { get; set; } /// Gets or sets the asset location information for this equipment. public string? AssetLocation { get; set; } /// Gets or sets the manufacturer URI for this equipment. public string? ManufacturerUri { get; set; } /// Gets or sets the device manual URI for this equipment. public string? DeviceManualUri { get; set; } /// Nullable hook for future schemas-repo template ID. public string? EquipmentClassRef { get; set; } /// Gets or sets whether this equipment is enabled. public bool Enabled { get; set; } = true; /// Optimistic concurrency token for last-write-wins detection in the v2 live-edit model. public byte[] RowVersion { get; set; } = Array.Empty(); }