//using Modules.Library.Domain.EntitiesV0.MediaContent.Items.Anime;
//using Modules.Library.Domain.EntitiesV0.MediaContent.Items.Anime.ShadowEntities;

//namespace Modules.Library.Domain.EntityBuilders;

//public class AnimeEpisodeBuilder
//{
//    private AnimeEpisodeShadow episode = new();

//    public AnimeEpisodeBuilder SetCommonProperties(CommonPropertiesBuilder builder)
//    {
//        episode.commonProperties = builder.Build();
//        return this;
//    }

//    public AnimeEpisodeBuilder SetOrder(ushort value)
//    {
//        episode.order = value;
//        return this;
//    }

//    public AnimeEpisodeBuilder SetVariant(ushort value)
//    {
//        episode.variant = value;
//        return this;
//    }

//    public AnimeEpisodeBuilder SetDuration(TimeSpan value)
//    {
//        episode.duration = value;
//        return this;
//    }

//    public AnimeEpisodeBuilder SetType(AnimeEpisodeType value)
//    {
//        episode.type = value;
//        return this;
//    }

//    public AnimeEpisodeBuilder SetNumber(int? value)
//    {
//        episode.number = value;
//        return this;
//    }

//    public AnimeEpisodeBuilder SetCompleted(bool value)
//    {
//        episode.completed = value;
//        return this;
//    }

//    public AnimeEpisodeBuilder SetDeleted(bool value)
//    {
//        episode.deleted = value;
//        return this;
//    }

//    public AnimeEpisodeBuilder SetExpirationTime(TimeSpan value)
//    {
//        episode.expirationTime = value;
//        return this;
//    }

//    internal static AnimeEpisodeBuilder FromAnimeEpisode(AnimeEpisode episode)
//    {
//        var builder = new AnimeEpisodeBuilder();
//        builder.SetCommonProperties(CommonPropertiesBuilder.FromCommonProperties(episode.CommonProperties));
//        builder.SetOrder(episode.Order);
//        builder.SetVariant(episode.Variant);
//        if (episode.Duration.HasValue) builder.SetDuration(episode.Duration.Value);
//        builder.SetType(episode.Type);
//        builder.SetNumber(episode.Number);
//        builder.SetCompleted(episode.Completed);
//        builder.SetDeleted(episode.Deleted);
//        builder.SetExpirationTime(episode.ExpirationTime);
//        return builder;
//    }

//    internal AnimeEpisodeShadow Build()
//    {
//        return episode;
//    }
//}