namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Host.Backend.Galaxy;

/// <summary>
///     One row from the v1 <c>HierarchySql</c>. Galaxy <c>gobject</c> deployed instance with its
///     hierarchy parent + template-chain context.
/// </summary>
public sealed class GalaxyHierarchyRow
{
    public int GobjectId { get; init; }
    public string TagName { get; init; } = string.Empty;
    public string ContainedName { get; init; } = string.Empty;
    public string BrowseName { get; init; } = string.Empty;
    public int ParentGobjectId { get; init; }
    public bool IsArea { get; init; }
    public int CategoryId { get; init; }
    public int HostedByGobjectId { get; init; }
    public System.Collections.Generic.IReadOnlyList<string> TemplateChain { get; init; } = System.Array.Empty<string>();
}

/// <summary>One row from the v1 <c>AttributesSql</c>.</summary>
public sealed class GalaxyAttributeRow
{
    public int GobjectId { get; init; }
    public string TagName { get; init; } = string.Empty;
    public string AttributeName { get; init; } = string.Empty;
    public string FullTagReference { get; init; } = string.Empty;
    public int MxDataType { get; init; }
    public string? DataTypeName { get; init; }
    public bool IsArray { get; init; }
    public int? ArrayDimension { get; init; }
    public int MxAttributeCategory { get; init; }
    public int SecurityClassification { get; init; }
    public bool IsHistorized { get; init; }
    public bool IsAlarm { get; init; }
}
