toString(), $attributes['mangaId'] ?? 'manga-'.Uuid::uuid4()->toString(), $attributes['chapterId'] ?? 'chapter-'.Uuid::uuid4()->toString(), $attributes['sourceId'] ?? 'source-'.Uuid::uuid4()->toString() ); if (isset($attributes['status'])) { $this->setJobStatus($job, $attributes['status']); } if (isset($attributes['pages'])) { foreach ($attributes['pages'] as $index => $page) { $job->addPage(new PageNumber($index + 1), new ImageUrl($page)); } } $this->repository->save($job); return $job; } private function setJobStatus(ScrapingJob $job, ScrapingStatus $status): void { // Cette méthode nécessite peut-être d'ajouter des méthodes protégées dans ScrapingJob // pour permettre la modification du statut dans les tests // Ou utiliser de la réflexion si nécessaire $reflection = new \ReflectionProperty($job, 'status'); $reflection->setAccessible(true); $reflection->setValue($job, $status); } }