<?php
namespace App\Controller\Website\Site;
use App\Controller\Website\ThemeRenderController;
use App\Repository\Website\Menu\MenuItemRepository;
use App\Repository\Website\Menu\MenuRepository;
use App\Repository\Website\PostType\PostTypeMetaRepository;
use App\Repository\Website\PostType\PostTypeRepository;
use App\Repository\Website\Product\ProductCategoryRepository;
use App\Repository\Website\Product\ProductRepository;
use App\Service\BaseSite\Shop\ShopService;
use App\Service\WebsiteManager;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
class IndexController extends ThemeRenderController
{
#[Route('/', name: 'app_shop_site_index')]
public function index()
{
return $this->renderUserTemplate('index.html.twig');
}
#[Route('/fill', name: 'app_shop_site_fill')]
public function fill(ShopService $shopService , WebsiteManager $websiteManager,EntityManagerInterface $entityManager,
PostTypeRepository $postTypeRepository,
PostTypeMetaRepository $postTypeMetaRepository,
ProductCategoryRepository $productCategoryRepository,
ProductRepository $productRepository,
MenuRepository $menuRepository,
MenuItemRepository $menuItemRepository,
)
{
foreach ($productCategoryRepository->findBy(['website' => $websiteManager->getShop()]) as $item) {
$item->setActive(0);
$item->setDeletedAt(new \DateTime());
}
foreach ($menuRepository->findBy(['website' => $websiteManager->getShop()]) as $item) {
foreach ($menuItemRepository->findBy(['menu' => $item]) as $itemItem) {
$itemItem->setActive(0);
$itemItem->setDeletedAt(new \DateTime());
}
$item->setActive(0);
$item->setDeletedAt(new \DateTime());
}
foreach ($productRepository->findBy(['website' => $websiteManager->getShop()]) as $item) {
$item->setActive(0);
$item->setDeletedAt(new \DateTime());
}
foreach ($postTypeRepository->findBy(['website' => $websiteManager->getShop()]) as $item) {
foreach ($postTypeMetaRepository->findBy(['postType' =>$item]) as $postTypeMeta) {
$postTypeMeta->setActive(0);
$postTypeMeta->setDeletedAt(new \DateTime());
}
$item->setActive(0);
$item->setDeletedAt(new \DateTime());
}
$entityManager->flush();
$shopService->fillExamplesOnTheme($websiteManager->getShop());
die;
}
}