using Modules.Library.Database.Database.Models.Anime; namespace Modules.Library.Database.GatewaysImplementations.Converters; internal class AnimeEpisodeConverter { private readonly CommonPropertiesConverter _commonPropertiesConverter; internal AnimeEpisodeConverter(CommonPropertiesConverter commonPropertiesConverter) { _commonPropertiesConverter = commonPropertiesConverter; } internal async Task Convert(AnimeEpisode episode) { return new Application.Models.Anime.Episode { Id = episode.Id, Deleted = episode.Deleted, Completed = episode.Completed, CommonProperties = await _commonPropertiesConverter.Convert(episode.CommonProperties), Number = episode.Number, Order = episode.Order, Variant = episode.Variant, ExpirationTime = episode.ExpirationTime, Type = (Application.Models.AnimeEpisodeType)episode.Type, Duration = episode.Duration, }; } internal AnimeEpisode Convert(Domain.Entities.MediaContent.Items.Anime.AnimeEpisode episode) { var dbEpisode = new AnimeEpisode { Type = (AnimeEpisodeType)episode.Type, CommonProperties = _commonPropertiesConverter.Convert(episode.CommonProperties), Order = episode.Order, Variant = episode.Variant, Number = episode.Number, Completed = episode.Completed, Deleted = episode.Deleted, ExpirationTime = episode.ExpirationTime, }; if (!episode.IsTransient()) dbEpisode.Id = episode.Id; return dbEpisode; } }