namespace Modules.Library.Core.Domain.MediaContent; public class TopLevelItem : Entity, IAggregateRoot, ICompletable { [Required] public CommonProperties.CommonProperties CommonProperties { get; set; } = default!; protected List _items = []; public IReadOnlyCollection Items => _items.AsReadOnly(); [Required] public User.User Creator { get; private set; } = default!; public bool Completed { get; private set; } public TimeSpan ExpirationTime { get; private set; } = TimeSpan.Zero; public void SetCompleted() => Completed = true; public void SetNotCompleted() => Completed = false; public void SetExpirationTime(TimeSpan value) => ExpirationTime = value; }