<?php

namespace Lc\CaracoleBundle\Container\File;

use Lc\CaracoleBundle\Factory\File\DocumentFactory;
use Lc\CaracoleBundle\Repository\File\DocumentRepositoryQuery;
use Lc\CaracoleBundle\Repository\File\DocumentStore;

class DocumentContainer
{
    protected DocumentFactory $factory;
    protected DocumentRepositoryQuery $repositoryQuery;
    protected DocumentStore $store;

    public function __construct(
            DocumentFactory $factory,
            DocumentRepositoryQuery $repositoryQuery,
            DocumentStore $store
    ) {
        $this->factory = $factory;
        $this->repositoryQuery = $repositoryQuery;
        $this->store = $store;
    }

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

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

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

        return $this->store;
    }
}