diff --git a/README.md b/README.md index a870693..2373f7f 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,8 @@ Les données proviennent de la filmographie Letterboxd de l'utilisateur : seuls src/ ├── Controller/ # Contrôleurs (Game, Import, Auth) ├── Entity/ # Entités Doctrine (Game, Actor, Movie, Award...) -├── Service/ # Logique métier (GameGridGenerator, FilmImporter, ActorSyncer, AwardImporter) +├── Provider/ # Fournisseurs de données (GameGridProvider) +├── Import/ # Import de données externes (FilmImporter, ActorSyncer, AwardImporter) ├── Repository/ # Requêtes Doctrine ├── Gateway/ # Intégrations externes (TMDB, Wikidata, Letterboxd) ├── Message/ # Messages async (ProcessImport, ImportFilmsBatch) diff --git a/src/Controller/GameController.php b/src/Controller/GameController.php index 037063c..08e524a 100644 --- a/src/Controller/GameController.php +++ b/src/Controller/GameController.php @@ -7,7 +7,7 @@ namespace App\Controller; use App\Entity\Game; use App\Entity\User; use App\Repository\GameRepository; -use App\Service\GameGridGenerator; +use App\Provider\GameGridProvider; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -19,7 +19,7 @@ class GameController extends AbstractController #[Route('/game/start', name: 'app_game_start', methods: ['POST'])] public function start( Request $request, - GameGridGenerator $generator, + GameGridProvider $generator, GameRepository $gameRepository, ): Response { $this->validateCsrfToken('game_start', $request); diff --git a/src/Controller/HomepageController.php b/src/Controller/HomepageController.php index 37689bf..9cfe19f 100644 --- a/src/Controller/HomepageController.php +++ b/src/Controller/HomepageController.php @@ -7,7 +7,7 @@ namespace App\Controller; use App\Entity\Game; use App\Entity\User; use App\Repository\GameRepository; -use App\Service\GameGridGenerator; +use App\Provider\GameGridProvider; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -19,7 +19,7 @@ class HomepageController extends AbstractController public function index( Request $request, GameRepository $gameRepository, - GameGridGenerator $gridGenerator, + GameGridProvider $gridGenerator, ): Response { /** @var User|null $user */ $user = $this->getUser(); diff --git a/src/Service/ActorSyncer.php b/src/Import/ActorSyncer.php similarity index 98% rename from src/Service/ActorSyncer.php rename to src/Import/ActorSyncer.php index 70ddc13..899bd65 100644 --- a/src/Service/ActorSyncer.php +++ b/src/Import/ActorSyncer.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Service; +namespace App\Import; use App\Entity\Actor; use App\Entity\Movie; diff --git a/src/Service/AwardImporter.php b/src/Import/AwardImporter.php similarity index 99% rename from src/Service/AwardImporter.php rename to src/Import/AwardImporter.php index b2d106b..81cdb3a 100644 --- a/src/Service/AwardImporter.php +++ b/src/Import/AwardImporter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Service; +namespace App\Import; use App\Entity\Actor; use App\Entity\Award; diff --git a/src/Service/FilmImporter.php b/src/Import/FilmImporter.php similarity index 98% rename from src/Service/FilmImporter.php rename to src/Import/FilmImporter.php index f6ce6d1..18ea097 100644 --- a/src/Service/FilmImporter.php +++ b/src/Import/FilmImporter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Service; +namespace App\Import; use App\Entity\Movie; use App\Exception\GatewayException; diff --git a/src/MessageHandler/ImportFilmsBatchMessageHandler.php b/src/MessageHandler/ImportFilmsBatchMessageHandler.php index f185713..34ea99d 100644 --- a/src/MessageHandler/ImportFilmsBatchMessageHandler.php +++ b/src/MessageHandler/ImportFilmsBatchMessageHandler.php @@ -9,9 +9,9 @@ use App\Entity\UserMovie; use App\Gateway\LtbxdGateway; use App\Message\ImportFilmsBatchMessage; use App\Repository\ImportRepository; -use App\Service\ActorSyncer; -use App\Service\AwardImporter; -use App\Service\FilmImporter; +use App\Import\ActorSyncer; +use App\Import\AwardImporter; +use App\Import\FilmImporter; use Doctrine\ORM\EntityManagerInterface; use League\Flysystem\FilesystemOperator; use Psr\Log\LoggerInterface; diff --git a/src/Service/GameGridGenerator.php b/src/Provider/GameGridProvider.php similarity index 99% rename from src/Service/GameGridGenerator.php rename to src/Provider/GameGridProvider.php index 3d923a6..1245a9f 100644 --- a/src/Service/GameGridGenerator.php +++ b/src/Provider/GameGridProvider.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Service; +namespace App\Provider; use App\Entity\Actor; use App\Entity\Game; @@ -14,7 +14,7 @@ use App\Repository\MovieRoleRepository; use App\Repository\AwardRepository; use Doctrine\ORM\EntityManagerInterface; -class GameGridGenerator +class GameGridProvider { public function __construct( private readonly ActorRepository $actorRepository, diff --git a/tests/Service/AwardImporterTest.php b/tests/Import/AwardImporterTest.php similarity index 98% rename from tests/Service/AwardImporterTest.php rename to tests/Import/AwardImporterTest.php index b6fdb61..87a2759 100644 --- a/tests/Service/AwardImporterTest.php +++ b/tests/Import/AwardImporterTest.php @@ -2,14 +2,14 @@ declare(strict_types=1); -namespace App\Tests\Service; +namespace App\Tests\Import; use App\Entity\Actor; use App\Entity\Award; use App\Entity\AwardType; use App\Gateway\WikidataGateway; use App\Repository\AwardTypeRepository; -use App\Service\AwardImporter; +use App\Import\AwardImporter; use Doctrine\ORM\EntityManagerInterface; use PHPUnit\Framework\TestCase; diff --git a/tests/Service/GameGridGeneratorTest.php b/tests/Provider/GameGridProviderTest.php similarity index 91% rename from tests/Service/GameGridGeneratorTest.php rename to tests/Provider/GameGridProviderTest.php index 11e364c..339b355 100644 --- a/tests/Service/GameGridGeneratorTest.php +++ b/tests/Provider/GameGridProviderTest.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace App\Tests\Service; +namespace App\Tests\Provider; use App\Entity\Actor; use App\Entity\Award; @@ -12,11 +12,11 @@ use App\Repository\ActorRepository; use App\Repository\AwardRepository; use App\Repository\MovieRepository; use App\Repository\MovieRoleRepository; -use App\Service\GameGridGenerator; +use App\Provider\GameGridProvider; use Doctrine\ORM\EntityManagerInterface; use PHPUnit\Framework\TestCase; -class GameGridGeneratorTest extends TestCase +class GameGridProviderTest extends TestCase { public function testResolveHintTextForAward(): void { @@ -35,7 +35,7 @@ class GameGridGeneratorTest extends TestCase $awardRepository = $this->createMock(AwardRepository::class); $awardRepository->method('find')->with(42)->willReturn($award); - $generator = new GameGridGenerator( + $generator = new GameGridProvider( $this->createMock(ActorRepository::class), $this->createMock(MovieRoleRepository::class), $this->createMock(MovieRepository::class),