<?php declare(strict_types=1);

namespace App\Engine\Settings;

final class SettingsController extends \App\Engine\Admin\Inertia\BaseInertiaAdminController
{

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

    public function index(
        \App\Engine\Admin\Inertia\SystemConfiguration\AdminSystemConfigurationProvider $adminSystemConfigurationProvider,
        \Symfony\Contracts\Translation\TranslatorInterface                             $translator,
        SettingsManager                                                                $settingsManager,
        \Symfony\Component\HttpFoundation\Request                                      $request,
    ): \Symfony\Component\HttpFoundation\Response {
        $adminSystemConfigurationProvider->getConfiguration()->pageMeta->title = $translator->trans("admin.menu.settings");

        $props = new \App\Engine\Inertia\Admin\Props\SettingsProps();
        $props->groups = $settingsManager->getGroups();
        $props->settingsSections = $settingsManager->createAndHandleSections($request);

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

}