namespace ClaudeDo.Data.Models;

public enum WorktreeState
{
    Active,
    Merged,
    Discarded,
    Kept,
}

public sealed class WorktreeEntity
{
    public required string TaskId { get; init; }
    public required string Path { get; set; }
    public required string BranchName { get; set; }
    public required string BaseCommit { get; set; }
    public string? HeadCommit { get; set; }
    public string? DiffStat { get; set; }
    public string? MergeCommit { get; set; }
    public WorktreeState State { get; set; } = WorktreeState.Active;
    public required DateTime CreatedAt { get; init; }

    // Navigation property
    public TaskEntity Task { get; set; } = null!;
}
