namespace ZB.MOM.WW.OtOpcUa.Client.Shared.Models;

/// <summary>
///     Represents a single node in the browse result set.
/// </summary>
public sealed class BrowseResult
{
    /// <summary>Initializes a new instance of the BrowseResult class.</summary>
    /// <param name="nodeId">The string representation of the node's NodeId.</param>
    /// <param name="displayName">The display name of the node.</param>
    /// <param name="nodeClass">The node class (e.g., "Object", "Variable", "Method").</param>
    /// <param name="hasChildren">Whether the node has child references.</param>
    public BrowseResult(string nodeId, string displayName, string nodeClass, bool hasChildren)
    {
        NodeId = nodeId;
        DisplayName = displayName;
        NodeClass = nodeClass;
        HasChildren = hasChildren;
    }

    /// <summary>
    ///     The string representation of the node's NodeId.
    /// </summary>
    public string NodeId { get; }

    /// <summary>
    ///     The display name of the node.
    /// </summary>
    public string DisplayName { get; }

    /// <summary>
    ///     The node class (e.g., "Object", "Variable", "Method").
    /// </summary>
    public string NodeClass { get; }

    /// <summary>
    ///     Whether the node has child references.
    /// </summary>
    public bool HasChildren { get; }
}