using System; using System.Collections.Generic; namespace Project.Tasks.Editor { internal static class TaskBoardConstants { public const int MinutesPerHour = 60; public const int HoursPerDay = 8; public const int MinutesPerDay = HoursPerDay * MinutesPerHour; public const int WorkDaysPerWeek = 5; public const int MinutesPerWeek = WorkDaysPerWeek * MinutesPerDay; public static readonly string[] Statuses = { "BackLog", "ToDo", "InProgress", "Review", "Done" }; public static readonly string[] Priorities = { "Lowest", "Low", "Medium", "High", "Highest" }; } [Serializable] internal sealed class TaskRecord { public string Id; public string Title; public string Status; public string Priority; public string Area; public string Owner; public string Created; public string Updated; public string ExecutionTime; public string RelativeFilePath; public string AbsoluteFilePath; public string IndexSummary; public string TaskSummary; public int EstimatedMinutes = -1; public string Header; public string Why; public string ExpectedOutcome; public string CurrentContext; public string AcceptanceCriteria; public string Verification; public string Risks; public string HumanDecisions; public string DecisionLog; public string HandoffNotes; public bool FileExists; public bool DetailsLoaded; public int IndexLineNumber = -1; public readonly List ValidationMessages = new List(); } [Serializable] internal sealed class TaskBoardData { public string ProjectRoot; public string TasksDirectory; public string IndexPath; public string OwnersConfigPath; public readonly List Tasks = new List(); public readonly List Warnings = new List(); public readonly List OwnerPresets = new List(); } }