// Copyright (c) Microsoft. All rights reserved. using System.Text.Json.Serialization; namespace AGUIDojoClient.Components.Demos.AgenticGenerativeUI; /// /// Represents a plan with multiple steps. /// public sealed class Plan { /// /// The list of steps in the plan. /// [JsonPropertyName("steps")] public List Steps { get; set; } = []; /// /// Gets the count of completed steps. /// [JsonIgnore] public int CompletedCount => this.Steps.Count(s => s.IsCompleted); /// /// Gets the total number of steps. /// [JsonIgnore] public int TotalCount => this.Steps.Count; /// /// Gets whether all steps are completed. /// [JsonIgnore] public bool IsComplete => this.Steps.Count > 0 && this.Steps.All(s => s.IsCompleted); }