<?php
namespace App\Controller\Admin;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Main\Reservation;
use App\Entity\Main\BookedActivity;
use App\Entity\Customer\Customer;
use App\Entity\Main\GroupTarifs;
use App\Entity\Main\Price;
use App\Entity\Main\Promos;
use App\Entity\Main\PromosOptions;
use App\Entity\Main\PromosPanier;
use App\Entity\Main\OffreDuMoment;
use App\Entity\Main\SuggestedOffer;
use App\Entity\Main\Activity;
use App\Entity\Main\Formule;
use App\Entity\Main\Forfait;
use App\Entity\Main\ActivityOptions;
use App\Entity\Main\CartoBon;
use App\Entity\Main\Calendar;
use App\Entity\Main\User;
class DashboardController extends AbstractDashboardController
{
/**
* @Route("/admin", name="admin")
*/
public function index(): Response
{
return $this->render('admin/dashboard.html.twig', []);
}
public function configureAssets(): Assets
{
return Assets::new()
->addJsFile('https://code.jquery.com/jquery-3.6.0.min.js')
->addJsFile('admin_assets/scripts-v20250526.js')
->addCssFile('admin_assets/style.css');
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('Reservation 1055 <span class="city-logo">Chaleuzeule Besançon</span>')
->setFaviconPath('assets/img/favicon.png');
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
yield MenuItem::section('Réservations');
yield MenuItem::linkToCrud('Réservations', 'fas fa-book', Reservation::class);
yield MenuItem::linkToCrud('Activités réservées', 'fas fa-list-ul', BookedActivity::class);
yield MenuItem::linkToCrud('Clients', 'fas fa-id-card', Customer::class);
yield MenuItem::section('Tarification')->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Types de tarifs', 'fas fa-funnel-dollar', GroupTarifs::class)->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Tarifs', 'fas fa-euro-sign', Price::class)->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Options', 'fas fa-check-square', ActivityOptions::class)->setPermission('ROLE_ADMIN');
yield MenuItem::subMenu('Promos', 'fa fa-percent')->setSubItems([
MenuItem::linkToCrud('Promos forfaits', '', Promos::class),
MenuItem::linkToCrud('Promos options', '', PromosOptions::class),
MenuItem::linkToCrud('Promos panier', '', PromosPanier::class),
])->setPermission('ROLE_ADMIN');
yield MenuItem::section('Animation')->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Offres du moment', 'fas fa-images', OffreDuMoment::class)->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Offres suggérées', 'fas fa-search-dollar', SuggestedOffer::class)->setPermission('ROLE_ADMIN');
yield MenuItem::section('Catalogue')->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Activités', 'fas fa-dice', Activity::class)->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Formules', 'fas fa-tasks', Formule::class)->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Forfaits', 'fas fa-cubes', Forfait::class)->setPermission('ROLE_ADMIN');
yield MenuItem::section('Configuration')->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Cartographie des bons', 'fas fa-map-signs', CartoBon::class)->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Calendrier de fermeture', 'fas fa-calendar-times', Calendar::class)->setPermission('ROLE_ADMIN');
yield MenuItem::linkToCrud('Utilisateurs', 'fas fa-user', User::class)->setPermission('ROLE_ADMIN');
}
}