<?php

namespace App\Container\CollectifData;

use App\Definition\Field\CollectifData\CollectifDataFieldDefinition;
use App\Factory\CollectifData\CollectifDataFactory;
use App\Repository\CollectifData\CollectifDataRepositoryQuery;
use App\Repository\CollectifData\CollectifDataStore;

class CollectifDataContainer
{
    protected CollectifDataFactory $factory;
    protected CollectifDataRepositoryQuery $repositoryQuery;
    protected CollectifDataStore $store;
    protected CollectifDataFieldDefinition $fieldDefinition;

    public function __construct(
        CollectifDataFactory $factory,
        CollectifDataRepositoryQuery $repositoryQuery,
        CollectifDataStore $store,
        CollectifDataFieldDefinition $fieldDefinition
    ) {
        $this->factory = $factory;
        $this->repositoryQuery = $repositoryQuery;
        $this->store = $store;
        $this->fieldDefinition = $fieldDefinition;
    }

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

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

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

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