using MediatR; using Modules.Library.Application.Gateways; namespace Modules.Library.Application.Commands.Anime.Title; public class CreateAnimeTitleCommand : IRequest { public string NameOriginal { get; set; } = default!; public Guid NameOriginalLanguageId { get; set; } } public class CreateAnimtTitleCommandHandler(IAnimeTitleGateway titleGateway, ILanguageGateway languageGateway) : IRequestHandler { public async Task Handle(CreateAnimeTitleCommand request, CancellationToken cancellationToken) { var language = await languageGateway.GetLanguageById(request.NameOriginalLanguageId); var animeTitle = new Domain.Entities.MediaContent.Items.Anime.AnimeTitle(language.Id, request.NameOriginal); return await titleGateway.Create(animeTitle); } }