<?php

namespace Lc\SovBundle\Twig;

use EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext;
use Lc\CaracoleBundle\Model\Section\SectionInterface;
use Lc\SovBundle\Model\Site\SiteInterface;
use Lc\SovBundle\Repository\Reminder\ReminderStoreInterface;
use Lc\SovBundle\Solver\Setting\SettingSolver;
use Symfony\Component\Security\Core\Security;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;

class StoreTwigExtension extends AbstractExtension
{
    protected Security $security;
    protected ReminderStoreInterface $reminderStore;
    protected SettingSolver $settingSolver;

    public function __construct(
            Security $security,
            ReminderStoreInterface $reminderStore,
            SettingSolver $settingSolver
    ) {
        $this->security = $security;
        $this->reminderStore = $reminderStore;
        $this->settingSolver = $settingSolver;
    }

    public function getFunctions()
    {
        return [
                new TwigFunction('sov_reminders', [$this, 'getReminders']),
                new TwigFunction('site_setting', [$this, 'getSiteSetting']),

        ];
    }

    public function getFilters()
    {
        return [];
    }

    public function getSiteSetting(SiteInterface $site, string $settingName): ?string
    {
        return $this->settingSolver->getSettingValue($site, $settingName);
    }

    public function getReminders($params)
    {
        // @TODO : à faire
        return array();
    }

}
