Add RegroupmentRepositoryInterface and integrate it

Created a new `RegroupmentRepositoryInterface` to define repository methods for Regroupment entities. Updated `RegroupmentRepository` to implement this interface, and replaced its usage in `ExportConfigNormalizer` for better abstraction and testability.
This commit is contained in:
Julien Fastré 2025-04-08 15:24:18 +02:00
parent ee65c46d2a
commit 2b88593e64
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
3 changed files with 28 additions and 2 deletions

View File

@ -18,6 +18,7 @@ use Chill\MainBundle\Form\Type\Export\ExportType;
use Chill\MainBundle\Form\Type\Export\FilterType;
use Chill\MainBundle\Repository\CenterRepositoryInterface;
use Chill\MainBundle\Repository\RegroupmentRepository;
use Chill\MainBundle\Repository\RegroupmentRepositoryInterface;
/**
* @phpstan-type NormalizedData array{centers: array{centers: list<int>, regroupments: list<int>}, export: array{form: array<string, mixed>, version: int}, filters: array<string, array{enabled: boolean, form: array<string, mixed>, version: int}>, aggregators: array<string, array{enabled: boolean, form: array<string, mixed>, version: int}>, pick_formatter: string, formatter: array{form: array<string, mixed>, version: int}}
@ -27,7 +28,7 @@ class ExportConfigNormalizer
public function __construct(
private readonly ExportManager $exportManager,
private readonly CenterRepositoryInterface $centerRepository,
private readonly RegroupmentRepository $regroupmentRepository,
private readonly RegroupmentRepositoryInterface $regroupmentRepository,
) {}
/**

View File

@ -18,7 +18,7 @@ use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\NoResultException;
use Doctrine\Persistence\ObjectRepository;
final readonly class RegroupmentRepository implements ObjectRepository
final readonly class RegroupmentRepository implements RegroupmentRepositoryInterface
{
private EntityRepository $repository;

View File

@ -0,0 +1,25 @@
<?php
namespace Chill\MainBundle\Repository;
use Chill\MainBundle\Entity\Regroupment;
use Doctrine\ORM\NonUniqueResultException;
use Doctrine\ORM\NoResultException;
use Doctrine\Persistence\ObjectRepository;
/**
* @template-extends ObjectRepository<Regroupment>
*/
interface RegroupmentRepositoryInterface extends ObjectRepository
{
/**
* @throws NonUniqueResultException
* @throws NoResultException
*/
public function findOneByName(string $name): ?Regroupment;
/**
* @return array<Regroupment>
*/
public function findRegroupmentAssociatedToNoCenter(): array;
}