<?php

namespace common\logic\Product\Product\Wrapper;

use common\logic\AbstractContainer;
use common\logic\Product\Product\Model\Product;
use common\logic\Product\Product\Repository\ProductRepository;
use common\logic\Product\Product\Service\ProductBuilder;
use common\logic\Product\Product\Service\ProductSolver;

class ProductContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return Product::class;
    }

    public function getServices(): array
    {
        return [
            ProductSolver::class,
            ProductBuilder::class,
            ProductRepository::class,
        ];
    }

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

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

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