using Modules.Library.Core.Domain.MediaContent.Items; namespace Modules.Library.Core.Domain.MediaContent; public abstract class MediaContentItem : Entity, IOrderableItem, IVariantItem, ICompletable { [Required] public CommonProperties.CommonProperties CommonProperties { get; set; } = default!; public uint Order { get; private set; } public uint Variant { get; private set; } public bool Completed { get; private set; } public TimeSpan ExpirationTime { get; private set; } = TimeSpan.Zero; public void SetOrder(uint order) => Order = order; public void SetVariant(uint variant) => Variant = variant; public void SetCompleted() => Completed = true; public void SetNotCompleted() => Completed = false; public void SetExpirationTime(TimeSpan value) => ExpirationTime = value; }