MyBookmark/Modules.Library.Domain/Entities/MediaContent/Items/Anime/AnimeItemSingle.cs
2024-09-23 03:00:50 +03:00

35 lines
963 B
C#

namespace Modules.Library.Domain.Entities.MediaContent.Items.Anime;
public abstract class AnimeItemSingle : AnimeItem
{
protected readonly AnimeSeason? _season;
public TimeSpan? Duration { get; private set; }
private protected AnimeItemSingle() : base() { }
private protected AnimeItemSingle(TimeSpan? duration) : base()
{
Duration = duration;
}
internal AnimeItemSingle(AnimeTitle title, AnimeSeason? season) : base(title)
{
_season = season;
}
internal AnimeItemSingle(AnimeTitle title, AnimeSeason? season, Guid nameOriginalLanguageId, string nameOriginal) :
base(title, nameOriginalLanguageId, nameOriginal)
{
_season = season;
}
public void SetDuration(TimeSpan value) => Duration = value;
protected override void StructureAction(Action action)
{
action.Invoke();
_season?.CheckIfCompleted();
_title.CheckIfCompleted();
}
}