using System.Text.Json.Serialization; namespace ProverbsAgent.Models; /// /// Represents a single task in the Kanban board /// public class KanbanTask { [JsonPropertyName("id")] public string Id { get; set; } = string.Empty; [JsonPropertyName("title")] public string Title { get; set; } = string.Empty; [JsonPropertyName("subtitle")] public string Subtitle { get; set; } = string.Empty; [JsonPropertyName("description")] public string Description { get; set; } = string.Empty; [JsonPropertyName("tags")] public List Tags { get; set; } = new(); [JsonPropertyName("status")] public string Status { get; set; } = "new"; // new | in_progress | review | completed } /// /// Represents a Kanban board containing multiple tasks /// public class Board { [JsonPropertyName("id")] public string Id { get; set; } = string.Empty; [JsonPropertyName("name")] public string Name { get; set; } = string.Empty; [JsonPropertyName("tasks")] public List Tasks { get; set; } = new(); } /// /// Root state object shared between frontend and backend via AG-UI protocol /// public class AgentState { [JsonPropertyName("boards")] public List Boards { get; set; } = new(); [JsonPropertyName("activeBoardId")] public string ActiveBoardId { get; set; } = string.Empty; [JsonPropertyName("lastAction")] public string? LastAction { get; set; } }