namespace Prefab.Web.Client.Models.Shared;
///
/// Represents the navigation menu payload exposed by the gateway.
///
/// Requested depth used when building the menu.
/// Maximum number of child links per column.
/// Menu columns sourced from root categories.
public sealed record NavMenuModel(int Depth, int MaxItemsPerColumn, IReadOnlyList Columns);
///
/// Represents an individual column in the navigation menu.
///
/// The root category anchoring the column.
/// Featured child categories.
/// Whether additional children exist beyond the truncated list.
/// Link to view the full set of categories for the root.
public sealed record NavMenuColumnModel(NavMenuLinkModel Root, IReadOnlyList Items, bool HasMore, string SeeAllUrl);
///
/// Represents a navigable link within the menu.
///
/// Identifier of the item.
/// Display name.
/// Slug used for routing.
/// True when the link represents a terminal category.
/// Absolute or relative navigation target.
public sealed record NavMenuLinkModel(string Id, string Name, string Slug, bool IsLeaf, string Url);