This commit is contained in:
2025-10-27 17:39:18 -04:00
commit 31f723bea4
1579 changed files with 642409 additions and 0 deletions

View File

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