Skip to content

Commit fdd41a5

Browse files
committed
Include AI generated and touched up xml docs
1 parent 1ea3a85 commit fdd41a5

File tree

1 file changed

+35
-5
lines changed

1 file changed

+35
-5
lines changed

src/Elastic.Documentation.Site/Navigation/INavigationItem.cs

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,62 @@
44

55
namespace Elastic.Documentation.Site.Navigation;
66

7-
public interface INavigationModel;
7+
/// Represents navigation model data for documentation elements.
8+
public interface INavigationModel
9+
{
10+
// This interface serves as a marker interface for navigation models
11+
// It's used as a constraint in other navigation-related interfaces
12+
}
813

14+
/// Represents an item in the navigation hierarchy.
915
public interface INavigationItem
1016
{
17+
/// Gets the URL for this navigation item.
1118
string Url { get; }
19+
20+
/// Gets the title displayed in navigation.
1221
string NavigationTitle { get; }
22+
23+
/// Gets the root navigation item.
1324
INodeNavigationItem<INavigationModel, INavigationItem> NavigationRoot { get; }
1425

15-
//TODO the setter smells
26+
/// <summary>
27+
/// Gets or sets the parent navigation item.
28+
/// </summary>
29+
/// <remarks>
30+
/// TODO: This should be read-only however currently needs the setter in assembler.
31+
/// </remarks>
1632
INodeNavigationItem<INavigationModel, INavigationItem>? Parent { get; set; }
1733
}
1834

35+
/// Represents a leaf node in the navigation tree with associated model data.
36+
/// <typeparam name="TModel">The type attached to the navigation model.</typeparam>
1937
public interface ILeafNavigationItem<out TModel> : INavigationItem
2038
where TModel : INavigationModel
2139
{
40+
/// Gets the navigation model associated with this navigation item.
2241
TModel Model { get; }
2342
}
2443

25-
public interface INodeNavigationItem<out TIndex, out TChildNavigation>
26-
: INavigationItem
44+
45+
/// Represents a node in the navigation tree that can contain child items.
46+
/// <typeparam name="TIndex">The type of the index model.</typeparam>
47+
/// <typeparam name="TChildNavigation">The type of child navigation items.</typeparam>
48+
public interface INodeNavigationItem<out TIndex, out TChildNavigation> : INavigationItem
2749
where TIndex : INavigationModel
2850
where TChildNavigation : INavigationItem
2951
{
52+
/// Gets the depth level in the navigation hierarchy.
3053
int Depth { get; }
54+
55+
/// Gets the unique identifier for this node.
3156
string Id { get; }
57+
58+
/// Gets the index model associated with this node.
3259
TIndex Index { get; }
60+
61+
/// <summary>
62+
/// Gets the collection of child navigation items.
63+
/// </summary>
3364
IReadOnlyCollection<TChildNavigation> NavigationItems { get; }
3465
}
35-

0 commit comments

Comments
 (0)