<?php

namespace Lc\CaracoleBundle\Controller\Newsletter;

use Lc\CaracoleBundle\Controller\AdminControllerTrait;
use Lc\SovBundle\Container\Newsletter\NewsletterContainer;
use Lc\SovBundle\Controller\Newsletter\NewsletterAdminController as SovNewsletterAdminController;

abstract class NewsletterAdminController extends SovNewsletterAdminController
{
    use AdminControllerTrait;

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

    public function configureFields(string $pageName): iterable
    {
        return $this->getNewsletterContainer()->getFieldDefinition()
                ->setMerchant($this->getMerchantCurrent())
                ->setSection($this->getSectionCurrent())
                ->getFields($pageName);
    }
}