mangaRepository->findById($command->mangaId->getValue()); if (null === $manga) { throw new \RuntimeException('Manga not found'); } // Synchronisation + récupération des numéros de nouveaux chapitres $newChapterNumbers = $this->chapterSynchronizationService->synchronizeChapters($manga); // Mise à jour de la date de monitoring $manga->updateLastMonitoringCheck(new \DateTimeImmutable()); $this->mangaRepository->save($manga); // Événement de scraping pour chaque nouveau chapitre // On retrouve l'ID réel (PK integer) après save() car le chapitre n'a // son identifiant définitif qu'une fois persisté en base. foreach ($newChapterNumbers as $chapterNumber) { $saved = $this->mangaRepository->findChapterByMangaIdAndNumber( $manga->getId()->getValue(), $chapterNumber ); if ($saved) { $this->eventBus->dispatch( new ChapterReadyForScraping(new ChapterId($saved->getId())) ); } } } }