<?php

namespace common\logic\Product\ProductPrice\Wrapper;

use common\logic\AbstractContainer;
use common\logic\Product\ProductPrice\Model\ProductPrice;
use common\logic\Product\ProductPrice\Repository\ProductPriceRepository;
use common\logic\Product\ProductPrice\Service\ProductPriceBuilder;
use common\logic\Product\ProductPrice\Service\ProductPriceSolver;

class ProductPriceContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return ProductPrice::class;
    }

    public function getServices(): array
    {
        return [
            ProductPriceSolver::class,
            ProductPriceBuilder::class,
            ProductPriceRepository::class
        ];
    }

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

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

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