namespace Junction.Domain.Protocols
{
///
/// Protocol-agnostic catalog entry describing a single selectable data item a machine exposes.
/// Returned (unfiltered) by so the config screen can
/// present the full set of items the user may choose to monitor. Immutable; nulls collapse to "".
///
public sealed class DataItemDescriptor
{
/// Stable identifier of the data item (e.g. MTConnect dataItemId).
public string Id { get; }
/// Human-readable name (may be empty).
public string Name { get; }
/// Protocol type (e.g. MTConnect POSITION, EXECUTION, AVAILABILITY).
public string Type { get; }
/// Category (e.g. MTConnect SAMPLE, EVENT, CONDITION). Kept as string to stay generic.
public string Category { get; }
/// Units (may be empty).
public string Units { get; }
public DataItemDescriptor(string id, string name, string type, string category, string units)
{
Id = id ?? "";
Name = name ?? "";
Type = type ?? "";
Category = category ?? "";
Units = units ?? "";
}
}
}