namespace ClaudeDo.Data.Models;

public sealed class ListEntity
{
    public required string Id { get; init; }
    public required string Name { get; set; }
    public required DateTime CreatedAt { get; init; }
    public string? WorkingDir { get; set; }
    public string DefaultCommitType { get; set; } = CommitTypeRegistry.DefaultType;
    public int SortOrder { get; set; }
    // A manual list holds reminders rather than Claude work: new tasks created here start out
    // manual (see TaskEntity.IsManual).
    public bool IsManual { get; set; }
    // When true the project's .claudedo/ findings store is committed with the repo; when false it
    // is kept out of git via .git/info/exclude (see FindingsStore).
    public bool FindingsTracked { get; set; }
    // Icon key into the UI's icon library (e.g. "Star"); null = the default folder icon.
    public string? Icon { get; set; }

    // Navigation properties
    public ListConfigEntity? Config { get; set; }
    public ICollection<TaskEntity> Tasks { get; set; } = new List<TaskEntity>();
}
