using MediatR; using Modules.Library.Application.Commands.Anime.Models; using Modules.Library.Application.Gateways; namespace Modules.Library.Application.Commands.Anime.Title; public class AddEpisodeCommand : IRequest { public Guid TitleId { get; set; } public AnimeEpisodeType Type { get; set; } } public class AddEpisodeCommandHandler(IAnimeTitleGateway titleGateway) : IRequestHandler { public async Task Handle(AddEpisodeCommand request, CancellationToken cancellationToken) { var title = await titleGateway.GetById(request.TitleId); var episode = title.AddEpisode((Domain.Entities.MediaContent.Items.Anime.AnimeEpisodeType)request.Type); await titleGateway.Update(title); return episode.Id; } }