namespace Journal.Core.Models;

public class TodoList
{
    public Guid Id { get; }
    public string Label { get; set; }
    public DateTimeOffset CreatedAt { get; set; }

    public TodoList(string label)
    {
        Validate(label);

        Id = Guid.NewGuid();
        Label = label.Trim();
        CreatedAt = DateTimeOffset.Now;
    }

    public TodoList(Guid id, string label, DateTimeOffset createdAt)
    {
        if (id == Guid.Empty)
            throw new ArgumentException("Id is required", nameof(id));
        Validate(label);

        Id = id;
        Label = label.Trim();
        CreatedAt = createdAt;
    }

    private static void Validate(string label)
    {
        if (string.IsNullOrWhiteSpace(label))
            throw new ArgumentException("Label is required", nameof(label));
    }
}
