using ZB.MOM.WW.ScadaBridge.Commons.Interfaces.Protocol;
namespace ZB.MOM.WW.ScadaBridge.Commons.Messages.Management;
///
/// Sent from CentralUI to a specific site to enumerate the immediate children
/// of an OPC UA node on the live server backing the given data connection.
///
///
/// Keyed by (not id) because the site-side
/// DataConnectionManagerActor indexes its children by connection name —
/// the central UI already has the connection name in scope (dropdown), so a
/// string carries no extra plumbing across the trust boundary. The central
/// DataConnections table's id is intentionally not exposed at the site.
///
/// Name of the site-local data connection to browse against.
/// Node to browse, or null to browse from the server root (ObjectsFolder).
public record BrowseNodeCommand(
string ConnectionName,
string? ParentNodeId);
public record BrowseNodeResult(
IReadOnlyList Children,
bool Truncated,
BrowseFailure? Failure);
public record BrowseFailure(
BrowseFailureKind Kind,
string Message);
public enum BrowseFailureKind
{
ConnectionNotFound,
ConnectionNotConnected,
NotBrowsable,
Timeout,
ServerError
}