feat: ajout de la gestion des jobs avec création, récupération et filtrage via l'API, incluant des entités et des mappers pour les échecs et les jobs

This commit is contained in:
ext.jeremy.guillot@maxicoffee.domains
2025-03-29 15:15:14 +01:00
parent d7088b14c2
commit d7ccc1e603
33 changed files with 1113 additions and 595 deletions

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Domain\Shared\Infrastructure\Persistence\Mapper;
use App\Domain\Shared\Domain\Model\FailedJob;
use App\Domain\Shared\Infrastructure\Persistence\Entity\FailedJobEntity;
readonly class FailedJobMapper
{
public function toEntity(FailedJob $job): FailedJobEntity
{
$entity = new FailedJobEntity();
$entity->setId($job->id)
->setType($job->jobType)
->setFailureReason($job->failureReason)
->setFailedAt($job->failedAt)
->setContext($job->context);
return $entity;
}
public function toDomain(FailedJobEntity $entity): FailedJob
{
return new FailedJob(
id: $entity->getId(),
jobId: $entity->getId(), // On utilise le même ID car on n'a pas de référence au job original
jobType: $entity->getType(),
failureReason: $entity->getFailureReason(),
context: $entity->getContext(),
failedAt: $entity->getFailedAt(),
attempt: 1 // Par défaut car on n'a pas cette info dans l'entité
);
}
}