<?php

namespace Lc\SovBundle\Container\Newsletter;

use App\Entity\Newsletter\Newsletter;
use Lc\SovBundle\Definition\Field\Newsletter\NewsletterFieldDefinition;
use Lc\SovBundle\Factory\Newsletter\NewsletterFactory;
use Lc\SovBundle\Repository\Newsletter\NewsletterRepositoryQuery;
use Lc\SovBundle\Repository\Newsletter\NewsletterStore;

class NewsletterContainer
{
    protected NewsletterFactory $factory;
    protected NewsletterRepositoryQuery $repositoryQuery;
    protected NewsletterStore $store;
    protected NewsletterFieldDefinition $fieldDefinition;

    public function __construct(
            NewsletterFactory $factory,
            NewsletterRepositoryQuery $repositoryQuery,
            NewsletterStore $store,
            NewsletterFieldDefinition $fieldDefinition
    ) {
        $this->factory = $factory;
        $this->repositoryQuery = $repositoryQuery;
        $this->store = $store;
        $this->fieldDefinition = $fieldDefinition;
    }

    public static function getEntityFqcn()
    {
        return Newsletter::class;
    }


    public function getFactory(): NewsletterFactory
    {
        return $this->factory;
    }

    public function getRepositoryQuery(): NewsletterRepositoryQuery
    {
        return $this->repositoryQuery;
    }

    public function getStore(): NewsletterStore
    {
        return $this->store;
    }

    public function getFieldDefinition(): NewsletterFieldDefinition
    {
        return $this->fieldDefinition;
    }
}
