resources:
    App\Entity\CommandGroup:
        processor: App\State\Processor\CommandGroupProcessor
        input: App\Dto\Input\CommandGroupInput
        output: App\Dto\Output\CommandGroupOutput
        normalizationContext:
            groups: ['default', 'command-group:read']
        denormalizationContext:
            groups: ['command-group:write']
        operations:
            ApiPlatform\Metadata\GetCollection:
                provider: App\State\Provider\CommandGroupProvider
                filters:
                    - 'api_platform.filter.command.order'
                    - 'api_platform.filter.command.search'
                    - 'api_platform.filter.command.boolean'

            ApiPlatform\Metadata\Get:
                provider: App\State\Provider\CommandGroupProvider
            ApiPlatform\Metadata\Put:
                provider: App\State\Provider\CommandGroupProvider
            ApiPlatform\Metadata\Patch:
                provider: App\State\Provider\CommandGroupProvider
            ApiPlatform\Metadata\Post: ~
            ApiPlatform\Metadata\Delete: ~

            add_commands:
                class: ApiPlatform\Metadata\Post
                method: POST
                input: App\Dto\Input\CommandGroupAddCommandsInput
                uriTemplate: /command-groups/{uuid}/add-commands
                controller: App\Controller\CommandGroupAddCommandsAction

            command_group_execute:
                class: ApiPlatform\Metadata\Post
                method: POST
                input: App\Dto\Input\CommandGroupExecuteInput
                uriTemplate: /command-groups/{uuid}/execute
                controller: App\Controller\CommandGroupExecuteAction

properties:
    App\Entity\CommandGroup:
        id:
            identifier: false
        uuid:
            identifier: true