<?php

namespace Lc\CaracoleBundle\Container\User;

use Lc\CaracoleBundle\Builder\User\VisitorBuilder;
use Lc\CaracoleBundle\Factory\User\VisitorFactory;
use Lc\CaracoleBundle\Repository\User\VisitorRepositoryQuery;
use Lc\CaracoleBundle\Repository\User\VisitorStore;
use Lc\CaracoleBundle\Resolver\VisitorResolver;
use Lc\CaracoleBundle\Solver\User\VisitorSolver;

class VisitorContainer
{
    protected VisitorFactory $factory;
    protected VisitorSolver $solver;
    protected VisitorRepositoryQuery $repositoryQuery;
    protected VisitorStore $store;
    protected VisitorResolver $resolver;
    protected VisitorBuilder $visitorBuilder;

    public function __construct(
            VisitorFactory $factory,
            VisitorSolver $solver,
            VisitorRepositoryQuery $repositoryQuery,
            VisitorStore $store,
            VisitorResolver $resolver,
            VisitorBuilder $builder
    ) {
        $this->factory = $factory;
        $this->solver = $solver;
        $this->repositoryQuery = $repositoryQuery;
        $this->store = $store;
        $this->resolver = $resolver;
        $this->builder = $builder;
    }

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

    public function getSolver(): VisitorSolver
    {
        return $this->solver;
    }

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

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

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

    public function getBuilder(): VisitorBuilder
    {
        return $this->builder;
    }

}