namespace ClaudeDo.Data.Models; public enum TaskStatus { Manual, Queued, Running, Done, Failed, } public sealed class TaskEntity { public required string Id { get; init; } public required string ListId { get; init; } public required string Title { get; set; } public string? Description { get; set; } public TaskStatus Status { get; set; } = TaskStatus.Manual; public DateTime? ScheduledFor { get; set; } public string? Result { get; set; } public string? LogPath { get; set; } public required DateTime CreatedAt { get; init; } public DateTime? StartedAt { get; set; } public DateTime? FinishedAt { get; set; } public string CommitType { get; set; } = "chore"; public string? Model { get; set; } public string? SystemPrompt { get; set; } public string? AgentPath { get; set; } // Navigation properties public ListEntity List { get; set; } = null!; public WorktreeEntity? Worktree { get; set; } public ICollection Tags { get; set; } = new List(); public ICollection Runs { get; set; } = new List(); public ICollection Subtasks { get; set; } = new List(); }