<?php
namespace App\Controller\Action;
use App\Entity\Customer;
use App\Repository\CustomerRepository;
use App\Repository\SiteRepository;
use App\Traits\TreeBuilderTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Attribute\AsController;
use Symfony\Component\Security\Core\Security;
#[AsController]
class SiteAffectationController extends AbstractController
{
use TreeBuilderTrait;
public function __construct(private Security $security, private SiteRepository $siteRepository, private CustomerRepository $customerRepository)
{
}
public function __invoke(Request $request): array
{
$document = $request->get('document', null);//@todo bilel to be checked for user admin
$user = $this->getUser();
if ($user->isMasterAdmin() && !empty($customerFilter)){
$customerIds = [$customerFilter];
}elseif ($user->isMasterAdmin()){
$customerIds = null;
} else {
$customerIds = $user->getCustomerAssociated();
if(empty($customerIds))
{
return [];
}
}
return $this->siteRepository->getAssignSitesByDocument($document, $user, $customerIds);
}
}