<?php

namespace Lc\SovBundle\Container\Site;

use App\Entity\Site\Page;
use Lc\SovBundle\Definition\Field\Site\PageFieldDefinition;
use Lc\SovBundle\Factory\Site\PageFactory;
use Lc\SovBundle\Repository\Site\PageRepositoryQuery;
use Lc\SovBundle\Repository\Site\PageStore;

class PageContainer
{
    protected PageFactory $factory;
    protected PageRepositoryQuery $repositoryQuery;
    protected PageStore $store;
    protected PageFieldDefinition $fieldDefinition;

    public function __construct(
            PageFactory $factory,
            PageRepositoryQuery $repositoryQuery,
            PageStore $store,
            PageFieldDefinition $fieldDefinition
    ) {
        $this->factory = $factory;
        $this->repositoryQuery = $repositoryQuery;
        $this->store = $store;
        $this->fieldDefinition = $fieldDefinition;
    }

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

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

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

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

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