// 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);
}