diff --git a/src/OpenApi/Attributes/Parameters/Path/IdParameter.php b/src/OpenApi/Attributes/Parameters/Path/IdParameter.php index 9389ecd88..04a896752 100644 --- a/src/OpenApi/Attributes/Parameters/Path/IdParameter.php +++ b/src/OpenApi/Attributes/Parameters/Path/IdParameter.php @@ -20,13 +20,13 @@ use OpenApi\Attributes\PathParameter; use OpenApi\Attributes\Schema; -#[Attribute(Attribute::TARGET_METHOD)] +#[Attribute(Attribute::TARGET_METHOD | Attribute::IS_REPEATABLE)] final class IdParameter extends PathParameter { - public function __construct(string $type = 'element', Schema $schema = new Schema(type: 'integer', example: 83)) + public function __construct(string $type = 'element', string $name = 'id', Schema $schema = new Schema(type: 'integer', example: 83)) { parent::__construct( - name: 'id', + name: $name, description: 'ID of the ' . $type, in: 'path', required: true, diff --git a/src/Tag/Attributes/Request/CreateTagRequestBody.php b/src/Tag/Attributes/Request/CreateTagRequestBody.php index 98b945e71..599d2cb08 100644 --- a/src/Tag/Attributes/Request/CreateTagRequestBody.php +++ b/src/Tag/Attributes/Request/CreateTagRequestBody.php @@ -19,7 +19,7 @@ use Attribute; use OpenApi\Attributes\JsonContent; use OpenApi\Attributes\RequestBody; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\CreateTagParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\CreateTagParameters; #[Attribute(Attribute::TARGET_METHOD)] final class CreateTagRequestBody extends RequestBody diff --git a/src/Tag/Attributes/Request/ElementTagRequestBody.php b/src/Tag/Attributes/Request/ElementTagRequestBody.php deleted file mode 100644 index 7cee34e40..000000000 --- a/src/Tag/Attributes/Request/ElementTagRequestBody.php +++ /dev/null @@ -1,34 +0,0 @@ -value)] #[Post( - path: self::API_PATH . '/tags/{elementType}/{id}', + path: self::API_PATH . '/tags/{elementType}/{id}/{tagId}', operationId: 'assignTagForElement', summary: 'Assign tag for element', security: self::SECURITY_SCHEME, @@ -63,17 +58,17 @@ public function __construct( )] #[ElementTypeParameter] #[IdParameter(type: 'element')] - #[ElementTagRequestBody] + #[IdParameter(type: 'tag', name: 'tagId')] #[DefaultResponses([ HttpResponseCodes::UNAUTHORIZED ])] public function assignTag( string $elementType, int $id, - #[MapRequestPayload] TagId $assignTag + int $tagId ): JsonResponse { - $this->tagService->assignTagToElement(new ElementParameters($elementType, $id), $assignTag->getTagId()); + $this->tagService->assignTagToElement(new ElementParameters($elementType, $id), $tagId); return $this->jsonResponse(['id' => $id]); } } diff --git a/src/Tag/Controller/Element/BatchAssignController.php b/src/Tag/Controller/Element/BatchAssignController.php index ea5aee36c..36d372a0b 100644 --- a/src/Tag/Controller/Element/BatchAssignController.php +++ b/src/Tag/Controller/Element/BatchAssignController.php @@ -24,15 +24,13 @@ use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Response\DefaultResponses; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Config\Tags; use Pimcore\Bundle\StudioBackendBundle\Tag\Attributes\Request\ElementsTagsCollectionRequestBody; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\BatchCollectionParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\BatchCollectionParameters; use Pimcore\Bundle\StudioBackendBundle\Tag\Schema\ElementTagIdCollection; use Pimcore\Bundle\StudioBackendBundle\Tag\Service\TagServiceInterface; use Pimcore\Bundle\StudioBackendBundle\Util\Constants\HttpResponseCodes; -use Pimcore\Bundle\StudioBackendBundle\Util\Constants\UserPermissions; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; use Symfony\Component\Routing\Attribute\Route; -use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Serializer\SerializerInterface; /** diff --git a/src/Tag/Controller/Element/BatchReplaceController.php b/src/Tag/Controller/Element/BatchReplaceController.php index 3d2c56087..a0b9bbdde 100644 --- a/src/Tag/Controller/Element/BatchReplaceController.php +++ b/src/Tag/Controller/Element/BatchReplaceController.php @@ -24,15 +24,13 @@ use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Response\DefaultResponses; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Config\Tags; use Pimcore\Bundle\StudioBackendBundle\Tag\Attributes\Request\ElementsTagsCollectionRequestBody; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\BatchCollectionParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\BatchCollectionParameters; use Pimcore\Bundle\StudioBackendBundle\Tag\Schema\ElementTagIdCollection; use Pimcore\Bundle\StudioBackendBundle\Tag\Service\TagServiceInterface; use Pimcore\Bundle\StudioBackendBundle\Util\Constants\HttpResponseCodes; -use Pimcore\Bundle\StudioBackendBundle\Util\Constants\UserPermissions; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; use Symfony\Component\Routing\Attribute\Route; -use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Serializer\SerializerInterface; /** diff --git a/src/Tag/Controller/Element/CollectionController.php b/src/Tag/Controller/Element/CollectionController.php index f663e3159..3a417b0e9 100644 --- a/src/Tag/Controller/Element/CollectionController.php +++ b/src/Tag/Controller/Element/CollectionController.php @@ -20,26 +20,19 @@ use Pimcore\Bundle\StudioBackendBundle\Controller\AbstractApiController; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Path\ElementTypeParameter; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Path\IdParameter; -use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Query\FieldFilterParameter; -use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Query\FilterParameter; -use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Query\PageParameter; -use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Query\PageSizeParameter; -use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Query\SortOrderParameter; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Response\Content\CollectionJson; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Response\DefaultResponses; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Response\SuccessResponse; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Config\Tags; use Pimcore\Bundle\StudioBackendBundle\Tag\Attributes\Response\Property\TagCollection; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\ElementParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\TagsParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\ElementParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\TagsParameters; use Pimcore\Bundle\StudioBackendBundle\Tag\Service\TagServiceInterface; use Pimcore\Bundle\StudioBackendBundle\Util\Constants\HttpResponseCodes; -use Pimcore\Bundle\StudioBackendBundle\Util\Constants\UserPermissions; use Pimcore\Bundle\StudioBackendBundle\Util\Traits\PaginatedResponseTrait; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpKernel\Attribute\MapQueryString; use Symfony\Component\Routing\Attribute\Route; -use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Serializer\SerializerInterface; use function count; diff --git a/src/Tag/Controller/Element/UnassignController.php b/src/Tag/Controller/Element/UnassignController.php index 3a92619b5..097f301f5 100644 --- a/src/Tag/Controller/Element/UnassignController.php +++ b/src/Tag/Controller/Element/UnassignController.php @@ -24,16 +24,11 @@ use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Path\IdParameter; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Response\DefaultResponses; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Config\Tags; -use Pimcore\Bundle\StudioBackendBundle\Tag\Attributes\Request\ElementTagRequestBody; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\ElementParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Schema\TagId; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\ElementParameters; use Pimcore\Bundle\StudioBackendBundle\Tag\Service\TagServiceInterface; use Pimcore\Bundle\StudioBackendBundle\Util\Constants\HttpResponseCodes; -use Pimcore\Bundle\StudioBackendBundle\Util\Constants\UserPermissions; use Symfony\Component\HttpFoundation\JsonResponse; -use Symfony\Component\HttpKernel\Attribute\MapRequestPayload; use Symfony\Component\Routing\Attribute\Route; -use Symfony\Component\Security\Http\Attribute\IsGranted; use Symfony\Component\Serializer\SerializerInterface; /** @@ -52,10 +47,10 @@ public function __construct( /** * @throws ElementSavingFailedException|ElementNotFoundException */ - #[Route('/tags/{elementType}/{id}', name: 'pimcore_studio_api_unassign_element_tag', methods: ['DELETE'])] + #[Route('/tags/{elementType}/{id}/{tagId}', name: 'pimcore_studio_api_unassign_element_tag', methods: ['DELETE'])] //#[IsGranted(UserPermissions::TAGS_ASSIGNMENT->value)] #[Delete( - path: self::API_PATH . '/tags/{elementType}/{id}', + path: self::API_PATH . '/tags/{elementType}/{id}/{tagId}', operationId: 'unassignTagFromElement', summary: 'Unassign tag from element', security: self::SECURITY_SCHEME, @@ -63,17 +58,17 @@ public function __construct( )] #[ElementTypeParameter] #[IdParameter(type: 'element')] - #[ElementTagRequestBody] + #[IdParameter(type: 'tag', name: 'tagId')] #[DefaultResponses([ HttpResponseCodes::UNAUTHORIZED ])] public function unassignTag( string $elementType, int $id, - #[MapRequestPayload] TagId $unassignTag + int $tagId ): JsonResponse { - $this->tagService->unassignTagFromElement(new ElementParameters($elementType, $id), $unassignTag->getTagId()); + $this->tagService->unassignTagFromElement(new ElementParameters($elementType, $id), $tagId); return $this->jsonResponse(['id' => $id]); } } diff --git a/src/Tag/Controller/UpdateController.php b/src/Tag/Controller/UpdateController.php index 216b50ff8..f11884524 100644 --- a/src/Tag/Controller/UpdateController.php +++ b/src/Tag/Controller/UpdateController.php @@ -18,14 +18,13 @@ use OpenApi\Attributes\JsonContent; use OpenApi\Attributes\Put; -use OpenApi\Attributes\Schema; use Pimcore\Bundle\StudioBackendBundle\Controller\AbstractApiController; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Parameters\Path\IdParameter; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Response\DefaultResponses; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Attributes\Response\SuccessResponse; use Pimcore\Bundle\StudioBackendBundle\OpenApi\Config\Tags; use Pimcore\Bundle\StudioBackendBundle\Tag\Attributes\Request\UpdateTagRequestBody; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\UpdateTagParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\UpdateTagParameters; use Pimcore\Bundle\StudioBackendBundle\Tag\Schema\Tag; use Pimcore\Bundle\StudioBackendBundle\Tag\Service\TagServiceInterface; use Pimcore\Bundle\StudioBackendBundle\Util\Constants\HttpResponseCodes; @@ -57,7 +56,7 @@ public function __construct( tags: [Tags::Tags->name] )] #[IsGranted(UserPermissions::TAGS_CONFIGURATION->value)] - #[IdParameter(type: 'tag', schema: new Schema(type: 'integer', example: 10))] + #[IdParameter(type: 'tag')] #[UpdateTagRequestBody] #[SuccessResponse( description: 'Updated tag data as json', diff --git a/src/Tag/Request/BatchCollectionParameters.php b/src/Tag/MappedParameter/BatchCollectionParameters.php similarity index 93% rename from src/Tag/Request/BatchCollectionParameters.php rename to src/Tag/MappedParameter/BatchCollectionParameters.php index f31cb3be5..8cee581a8 100644 --- a/src/Tag/Request/BatchCollectionParameters.php +++ b/src/Tag/MappedParameter/BatchCollectionParameters.php @@ -14,7 +14,7 @@ * @license http://www.pimcore.org/license GPLv3 and PCL */ -namespace Pimcore\Bundle\StudioBackendBundle\Tag\Request; +namespace Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter; /** * @internal diff --git a/src/Tag/Request/CreateTagParameters.php b/src/Tag/MappedParameter/CreateTagParameters.php similarity index 94% rename from src/Tag/Request/CreateTagParameters.php rename to src/Tag/MappedParameter/CreateTagParameters.php index 5a80d86b6..f918123ba 100644 --- a/src/Tag/Request/CreateTagParameters.php +++ b/src/Tag/MappedParameter/CreateTagParameters.php @@ -14,7 +14,7 @@ * @license http://www.pimcore.org/license GPLv3 and PCL */ -namespace Pimcore\Bundle\StudioBackendBundle\Tag\Request; +namespace Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter; use OpenApi\Attributes\Property; use OpenApi\Attributes\Schema; diff --git a/src/Tag/Request/ElementParameters.php b/src/Tag/MappedParameter/ElementParameters.php similarity index 92% rename from src/Tag/Request/ElementParameters.php rename to src/Tag/MappedParameter/ElementParameters.php index e4098934e..aef5f2462 100644 --- a/src/Tag/Request/ElementParameters.php +++ b/src/Tag/MappedParameter/ElementParameters.php @@ -14,7 +14,7 @@ * @license http://www.pimcore.org/license GPLv3 and PCL */ -namespace Pimcore\Bundle\StudioBackendBundle\Tag\Request; +namespace Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter; /** * @internal diff --git a/src/Tag/Request/TagsParameters.php b/src/Tag/MappedParameter/TagsParameters.php similarity index 86% rename from src/Tag/Request/TagsParameters.php rename to src/Tag/MappedParameter/TagsParameters.php index 1001c62ae..60dc8549e 100644 --- a/src/Tag/Request/TagsParameters.php +++ b/src/Tag/MappedParameter/TagsParameters.php @@ -14,9 +14,10 @@ * @license http://www.pimcore.org/license GPLv3 and PCL */ -namespace Pimcore\Bundle\StudioBackendBundle\Tag\Request; +namespace Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter; -use Pimcore\Bundle\StudioBackendBundle\Request\CollectionParameters; + +use Pimcore\Bundle\StudioBackendBundle\MappedParameter\CollectionParameters; /** * @internal diff --git a/src/Tag/Request/UpdateTagParameters.php b/src/Tag/MappedParameter/UpdateTagParameters.php similarity index 94% rename from src/Tag/Request/UpdateTagParameters.php rename to src/Tag/MappedParameter/UpdateTagParameters.php index ea223be8a..7e1a18bf4 100644 --- a/src/Tag/Request/UpdateTagParameters.php +++ b/src/Tag/MappedParameter/UpdateTagParameters.php @@ -14,7 +14,7 @@ * @license http://www.pimcore.org/license GPLv3 and PCL */ -namespace Pimcore\Bundle\StudioBackendBundle\Tag\Request; +namespace Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter; use OpenApi\Attributes\Property; use OpenApi\Attributes\Schema; diff --git a/src/Tag/Repository/TagRepository.php b/src/Tag/Repository/TagRepository.php index fa96f5f6d..1bb9c7d3a 100644 --- a/src/Tag/Repository/TagRepository.php +++ b/src/Tag/Repository/TagRepository.php @@ -20,12 +20,11 @@ use Pimcore\Bundle\StudioBackendBundle\Exception\ElementDeletingFailedException; use Pimcore\Bundle\StudioBackendBundle\Exception\ElementNotFoundException; use Pimcore\Bundle\StudioBackendBundle\Security\Service\SecurityServiceInterface; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\BatchCollectionParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\CreateTagParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\ElementParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\TagsParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\UpdateTagParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Schema\ElementTagIdCollection; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\BatchCollectionParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\CreateTagParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\ElementParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\TagsParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\UpdateTagParameters; use Pimcore\Bundle\StudioBackendBundle\Util\Traits\ElementProviderTrait; use Pimcore\Model\Element\Tag; use Pimcore\Model\Element\Tag\Listing as TagListing; diff --git a/src/Tag/Repository/TagRepositoryInterface.php b/src/Tag/Repository/TagRepositoryInterface.php index cd2a9cfd1..4cb7bdcef 100644 --- a/src/Tag/Repository/TagRepositoryInterface.php +++ b/src/Tag/Repository/TagRepositoryInterface.php @@ -18,11 +18,11 @@ use Pimcore\Bundle\StudioBackendBundle\Exception\ElementDeletingFailedException; use Pimcore\Bundle\StudioBackendBundle\Exception\ElementNotFoundException; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\BatchCollectionParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\CreateTagParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\ElementParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\TagsParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\UpdateTagParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\BatchCollectionParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\CreateTagParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\ElementParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\TagsParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\UpdateTagParameters; use Pimcore\Model\Element\Tag; use Pimcore\Model\Element\Tag\Listing as TagListing; diff --git a/src/Tag/Schema/TagId.php b/src/Tag/Schema/TagId.php deleted file mode 100644 index f1ed645c9..000000000 --- a/src/Tag/Schema/TagId.php +++ /dev/null @@ -1,43 +0,0 @@ -tagId; - } - -} diff --git a/src/Tag/Service/TagService.php b/src/Tag/Service/TagService.php index 55c6f7270..e4ef1ec0c 100644 --- a/src/Tag/Service/TagService.php +++ b/src/Tag/Service/TagService.php @@ -8,12 +8,12 @@ use Pimcore\Bundle\StudioBackendBundle\Exception\InvalidParentIdException; use Pimcore\Bundle\StudioBackendBundle\Tag\Event\TagEvent; use Pimcore\Bundle\StudioBackendBundle\Tag\Hydrator\TagHydratorInterface; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\BatchCollectionParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\CreateTagParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\ElementParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\TagsParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\UpdateTagParameters; use Pimcore\Bundle\StudioBackendBundle\Tag\Repository\TagRepositoryInterface; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\BatchCollectionParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\CreateTagParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\ElementParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\TagsParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\UpdateTagParameters; use Pimcore\Bundle\StudioBackendBundle\Tag\Schema\Tag; use Symfony\Component\EventDispatcher\EventDispatcherInterface; diff --git a/src/Tag/Service/TagServiceInterface.php b/src/Tag/Service/TagServiceInterface.php index d0f3e42f3..b65a46a69 100644 --- a/src/Tag/Service/TagServiceInterface.php +++ b/src/Tag/Service/TagServiceInterface.php @@ -19,11 +19,11 @@ use Pimcore\Bundle\StudioBackendBundle\Exception\ElementDeletingFailedException; use Pimcore\Bundle\StudioBackendBundle\Exception\ElementNotFoundException; use Pimcore\Bundle\StudioBackendBundle\Exception\InvalidParentIdException; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\BatchCollectionParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\CreateTagParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\ElementParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\TagsParameters; -use Pimcore\Bundle\StudioBackendBundle\Tag\Request\UpdateTagParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\BatchCollectionParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\CreateTagParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\ElementParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\TagsParameters; +use Pimcore\Bundle\StudioBackendBundle\Tag\MappedParameter\UpdateTagParameters; use Pimcore\Bundle\StudioBackendBundle\Tag\Schema\Tag; /**