<?php
namespace App\Controller\BaseSite\Site;
use App\Entity\LeadNumbers;
use App\Form\BaseSite\Site\LeadSupportFormType;
use App\Repository\BaseSite\Plan\FeatureRepository;
use App\Repository\BaseSite\Plan\PlanRepository;
use App\Repository\Shop\Product\ProductRepository;
use App\Repository\Shop\Shop\ShopRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class IndexController extends AbstractController
{
#[Route(path: '/', name: 'base_home', host: 'poooshe.com')]
public function index(Request $request, ShopRepository $shopRepository, ProductRepository $productRepository, PlanRepository $planRepository, FeatureRepository $featureRepository)
{
$masterPlan = $planRepository->findOneBy(['active' => 1, 'isTrial' => 0, 'isSystematic' => 1], ['price' => 'ASC']);
$form = $this->createFormBuilder();
$features = $featureRepository->findBy(['active' => true]);
$form->add('duration', IntegerType::class, [
'label' => 'مدت بسته (بر حسب ماه)',
'mapped' => false,
'required' => true,
'data' => 1,
'attr' => ['class' => 'feature-input', 'min' => 1, 'data-feature-key' => 'duration', 'max' => 12]
]);
foreach ($featureRepository->findBy(['active' => 1, 'valueType' => 'activable']) as $feature) {
$form->add($feature->getFeatureKey(), CheckboxType::class, [
'label' => $feature->getName() . ($feature->getPricePerUnit() == 0 ? ' (رایگان) ' : ''),
'required' => false,
'disabled' => ($feature->getPricePerUnit() == 0),
'data' => ($feature->getPricePerUnit() == 0),
'help' => $feature->getDetails() ?: '',
'row_attr' => [
'class' => 'form-switch'
],
'mapped' => false,
'attr' => ['class' => 'feature-input', 'data-feature-key' => $feature->getFeatureKey()]
]);
}
foreach ($featureRepository->findBy(['active' => 1, 'valueType' => 'valuable']) as $feature) {
$form->add($feature->getFeatureKey(), NumberType::class, [
'label' => $feature->getName() . ' (' . $feature->getUnit() . ')',
'required' => false,
'mapped' => false,
'attr' => ['class' => 'feature-input', 'data-feature-key' => $feature->getFeatureKey()]
]);
}
$form = $form->getForm();
$form->handleRequest($request);
return $this->render('base_site/site/v2/index.html.twig', [
'todayOrders' => 0,
'todaySites' => 0,
'todayUsers' => 0,
'totalSites' => count($shopRepository->findAll()) + 113,
'totalProducts' => count($productRepository->findAll()) + 1341,
'form' => $form->createView(),
'features' => $features,
'masterPlan' => $masterPlan,
]);
}
#[Route(path: '/', name: 'redorectCloudfolder_IR', host: 'cloudfolder.ir')]
public function redorectCloudfolder_IR(Request $request, ShopRepository $shopRepository, ProductRepository $productRepository)
{
return $this->redirect('https://poooshe.com', 308);
}
#[Route(path: '/', name: 'redorectPoooshe_IR', host: 'poooshe.ir')]
public function redorectPoooshe_IR(Request $request, ShopRepository $shopRepository, ProductRepository $productRepository)
{
return $this->redirect('https://poooshe.com', 308);
}
#[Route(path: '/check', name: 'check')]
public function check(Request $request, ShopRepository $shopRepository, ProductRepository $productRepository)
{
return $this->render('check.html.twig', []);
}
}