<?php

namespace common\logic\Producer\Producer\Wrapper;

use common\logic\AbstractContainer;
use common\logic\Producer\Producer\Model\Producer;
use common\logic\Producer\Producer\Repository\ProducerRepository;
use common\logic\Producer\Producer\Service\ProducerBuilder;
use common\logic\Producer\Producer\Service\ProducerSolver;
use common\logic\Producer\Producer\Service\ProducerUtils;

class ProducerContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return Producer::class;
    }

    public function getServices(): array
    {
        return [
            ProducerSolver::class,
            ProducerRepository::class,
            ProducerBuilder::class,
            ProducerUtils::class
        ];
    }

    public function getSolver(): ProducerSolver
    {
        return ProducerSolver::getInstance();
    }

    public function getRepository(): ProducerRepository
    {
        return ProducerRepository::getInstance();
    }

    public function getBuilder(): ProducerBuilder
    {
        return ProducerBuilder::getInstance();
    }

    public function getUtils(): ProducerUtils
    {
        return ProducerUtils::getInstance();
    }
}