<?php declare(strict_types=1);

namespace App\Controller;

class HomepageController extends \App\Engine\Inertia\Frontend\BaseInertiaFrontendController
{

    public function index(
        \App\Engine\UpcomingEvent\UpcomingEventProvider                 $upcomingEventProvider,
        \App\Engine\Home\Hero\HomeHeroSectionProvider                   $homeHeroSectionProvider,
        \App\Engine\Home\AboutUs\HomeAboutUsSectionProvider             $homeAboutUsSectionProvider,
        \App\Engine\Home\Statistics\HomeStatisticsSectionProvider       $homeStatisticsSectionProvider,
        \App\Engine\Home\StaticBanners\HomeStaticBannersSectionProvider $homeStaticBannersSectionProvider,
    ): \Symfony\Component\HttpFoundation\Response {
        $props = new \App\Engine\Inertia\Frontend\Props\HomepageProps();
        $props->upcomingEvents = $upcomingEventProvider->provideForHomepageCached();
        $props->homeStatisticsSection = $homeStatisticsSectionProvider->provideCached();
        $props->homeHeroSection = $homeHeroSectionProvider->provideCached();
        $props->homeAboutUsSection = $homeAboutUsSectionProvider->provideCached();
        $props->homeStaticBannersSection = $homeStaticBannersSectionProvider->provideCached();

        return $this->inertia->render(
            component: $this->getVueComponent(),
            props: $this->getInertiaProps($props),
        );
    }

    public function getId(): string
    {
        return "Home";
    }

}
