<?php

namespace Lc\SovBundle\Controller\Newsletter;

use EasyCorp\Bundle\EasyAdminBundle\Field\FormField;
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
use Lc\SovBundle\Container\Newsletter\NewsletterContainer;
use Lc\SovBundle\Controller\AbstractAdminController;
use Lc\SovBundle\Factory\Newsletter\NewsletterFactory;
use Lc\SovBundle\Field\BooleanField;
use Lc\SovBundle\Field\CKEditorField;
use Lc\SovBundle\Field\StatusField;
use Lc\SovBundle\Repository\RepositoryQueryInterface;

abstract class NewsletterAdminController extends AbstractAdminController
{
    public function getRepositoryQuery() :RepositoryQueryInterface
    {
        return $this->get(NewsletterContainer::class)->getRepositoryQuery();
    }
    public function configureFields(string $pageName): iterable
    {
        return array_merge(
                [
                        FormField::addPanel('general'),
                        TextField::new('title'),
                        BooleanField::new('isMain')
                            ->setCustomOption('toggle_label', 'Principale'),
                        CKEditorField::new('description')
                            ->hideOnIndex(),
                        StatusField::new('status'),
                ],
                $this->getSeoPanel(),
                $this->getConfPanel()
        );
    }

    public function createEntity(string $entityFqcn)
    {
        return $this->get(NewsletterContainer::class)->getFactory()->create();
    }

}
