<?php

namespace common\logic\Distribution\Distribution\Wrapper;

use common\logic\AbstractContainer;
use common\logic\Distribution\Distribution\Model\Distribution;
use common\logic\Distribution\Distribution\Repository\DistributionRepository;
use common\logic\Distribution\Distribution\Service\DistributionBuilder;
use common\logic\Distribution\Distribution\Service\DistributionSolver;

class DistributionContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return Distribution::class;
    }

    public function getServices(): array
    {
        return [
            DistributionSolver::class,
            DistributionRepository::class,
            DistributionBuilder::class
        ];
    }

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

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

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