<?php
declare(strict_types=1);
namespace App\V4\Controller\Quote;
use ApiPlatform\Core\DataProvider\CollectionDataProviderInterface;
use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
use App\V4\Controller\AbstractGetSubListAction;
use App\V4\Model\ChildrenAwareInterface;
use App\V4\Model\Quote\Quote;
use App\V4\Voters\QuoteVoter;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\SerializerInterface;
class GetQuotesByProspectAction extends AbstractGetSubListAction
{
protected const ENTITY = Quote::class;
protected const KEY_PROSPECT = 'prospectId';
protected const ACCESS_UNLESS_GRANTED = QuoteVoter::QUOTE_SHOW_LIST;
/**
* @param CollectionDataProviderInterface $collectionDataProvider
* @param Serializer $serializer
* @param ItemDataProviderInterface $itemDataProvider
*/
public function __construct(
CollectionDataProviderInterface $collectionDataProvider,
SerializerInterface $serializer,
ItemDataProviderInterface $itemDataProvider
) {
parent::__construct($collectionDataProvider, $serializer, $itemDataProvider);
}
/**
* @param Request $request
*
* @return array
*/
protected function getDefaultFilters(Request $request): array
{
return [
self::KEY_PROSPECT => $request->get('id'),
'status.isWon' => $request->get('status_isWon'),
ChildrenAwareInterface::FILTER_EXCLUDE_PARENT_ENTITIES => 'true',
];
}
}