<?php

namespace Lc\CaracoleBundle\Container\Section;

use App\Entity\Section\Opening;
use Lc\CaracoleBundle\Factory\Section\OpeningFactory;
use Lc\CaracoleBundle\Repository\Section\OpeningRepositoryQuery;
use Lc\CaracoleBundle\Repository\Section\OpeningStore;
use Lc\CaracoleBundle\Resolver\OpeningResolver;

class OpeningContainer
{
    protected OpeningFactory $factory;
    protected OpeningResolver $resolver;
    protected OpeningRepositoryQuery $repositoryQuery;
    protected OpeningStore $store;

    public function __construct(
            OpeningFactory $factory,
            OpeningResolver $resolver,
            OpeningRepositoryQuery $repositoryQuery,
            OpeningStore $store
    ) {
        $this->factory = $factory;
        $this->resolver = $resolver;
        $this->repositoryQuery = $repositoryQuery;
        $this->store = $store;
    }


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

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

    public function getResolver(): OpeningResolver
    {
        return $this->resolver;
    }

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

    public function getStore(): OpeningStore
    {
        $this->store->resetContext();

        return $this->store;
    }

}