using ZB.MOM.WW.GalaxyRepository.Grpc;

namespace ZB.MOM.WW.GalaxyRepository;

/// <summary>
///     A <see cref="GalaxyObject"/> paired with its computed contained path and hierarchy
///     depth. Materialized once per cache entry by <see cref="GalaxyHierarchyIndex"/> so
///     browse/discover projection can filter and page without recomputing paths.
/// </summary>
/// <param name="Object">The projected Galaxy object.</param>
/// <param name="ContainedPath">The slash-delimited contained path from the hierarchy root.</param>
/// <param name="Depth">The number of path segments from the root (zero for top-level objects).</param>
public sealed record GalaxyObjectView(
    GalaxyObject Object,
    string ContainedPath,
    int Depth);
