From e5dc60467e5849f4394ddcc62155e61074ab06ff Mon Sep 17 00:00:00 2001 From: Matthieu Date: Wed, 4 Mar 2026 16:05:24 +0100 Subject: [PATCH] feat(api) : ajout filtres SearchFilter ipartial sur noms de types et commentaires - Piece : typePiece.name ipartial - Composant : typeComposant.name ipartial - Product : typeProduct.name ipartial + OrderFilter supplierPrice - Comment : entityName partial + OrderFilter authorName, status Co-Authored-By: Claude Opus 4.6 --- src/Entity/Comment.php | 4 ++-- src/Entity/Composant.php | 2 +- src/Entity/Piece.php | 2 +- src/Entity/Product.php | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Entity/Comment.php b/src/Entity/Comment.php index f2526cf..3af2f67 100644 --- a/src/Entity/Comment.php +++ b/src/Entity/Comment.php @@ -20,8 +20,8 @@ use Doctrine\ORM\Mapping as ORM; #[ORM\Table(name: 'comments')] #[ORM\Index(columns: ['entity_type', 'entity_id', 'status'], name: 'idx_comment_entity_status')] #[ORM\HasLifecycleCallbacks] -#[ApiFilter(SearchFilter::class, properties: ['entityType' => 'exact', 'entityId' => 'exact', 'status' => 'exact'])] -#[ApiFilter(OrderFilter::class, properties: ['createdAt'])] +#[ApiFilter(SearchFilter::class, properties: ['entityType' => 'exact', 'entityId' => 'exact', 'status' => 'exact', 'entityName' => 'partial'])] +#[ApiFilter(OrderFilter::class, properties: ['createdAt', 'authorName', 'status'])] #[ApiResource( operations: [ new Get(security: "is_granted('ROLE_VIEWER')"), diff --git a/src/Entity/Composant.php b/src/Entity/Composant.php index dee68b9..fcb9f2f 100644 --- a/src/Entity/Composant.php +++ b/src/Entity/Composant.php @@ -25,7 +25,7 @@ use Symfony\Component\Serializer\Attribute\Groups; #[ORM\Entity(repositoryClass: ComposantRepository::class)] #[ORM\Table(name: 'composants')] #[ORM\HasLifecycleCallbacks] -#[ApiFilter(SearchFilter::class, properties: ['name' => 'ipartial', 'reference' => 'ipartial', 'typeComposant' => 'exact'])] +#[ApiFilter(SearchFilter::class, properties: ['name' => 'ipartial', 'reference' => 'ipartial', 'typeComposant' => 'exact', 'typeComposant.name' => 'ipartial'])] #[ApiFilter(OrderFilter::class, properties: ['name', 'createdAt'])] #[ApiResource( operations: [ diff --git a/src/Entity/Piece.php b/src/Entity/Piece.php index a32f466..74f3902 100644 --- a/src/Entity/Piece.php +++ b/src/Entity/Piece.php @@ -27,7 +27,7 @@ use Symfony\Component\Serializer\Attribute\Groups; #[ORM\Entity(repositoryClass: PieceRepository::class)] #[ORM\Table(name: 'pieces')] #[ORM\HasLifecycleCallbacks] -#[ApiFilter(SearchFilter::class, properties: ['name' => 'ipartial', 'reference' => 'ipartial', 'typePiece' => 'exact'])] +#[ApiFilter(SearchFilter::class, properties: ['name' => 'ipartial', 'reference' => 'ipartial', 'typePiece' => 'exact', 'typePiece.name' => 'ipartial'])] #[ApiFilter(OrderFilter::class, properties: ['name', 'createdAt'])] #[ApiResource( operations: [ diff --git a/src/Entity/Product.php b/src/Entity/Product.php index 7c695a8..ca0f0f8 100644 --- a/src/Entity/Product.php +++ b/src/Entity/Product.php @@ -25,8 +25,8 @@ use Symfony\Component\Serializer\Attribute\Groups; #[ORM\Entity(repositoryClass: ProductRepository::class)] #[ORM\Table(name: 'products')] #[ORM\HasLifecycleCallbacks] -#[ApiFilter(SearchFilter::class, properties: ['name' => 'ipartial', 'reference' => 'ipartial', 'typeProduct' => 'exact'])] -#[ApiFilter(OrderFilter::class, properties: ['name', 'createdAt'])] +#[ApiFilter(SearchFilter::class, properties: ['name' => 'ipartial', 'reference' => 'ipartial', 'typeProduct' => 'exact', 'typeProduct.name' => 'ipartial'])] +#[ApiFilter(OrderFilter::class, properties: ['name', 'createdAt', 'supplierPrice'])] #[ApiResource( operations: [ new Get(security: "is_granted('ROLE_VIEWER')"),