<?php

namespace common\logic\Producer\ProducerPriceRange\Module;

use common\logic\AbstractModule;
use common\logic\Producer\ProducerPriceRange\Repository\ProducerPriceRangeRepository;
use common\logic\Producer\ProducerPriceRange\Service\ProducerPriceRangeBuilder;
use common\logic\Producer\ProducerPriceRange\Service\ProducerPriceRangeDefinition;

/**
 * @mixin ProducerPriceRangeDefinition
 * @mixin ProducerPriceRangeRepository
 * @mixin ProducerPriceRangeBuilder
 */
class ProducerPriceRangeModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            ProducerPriceRangeDefinition::class,
            ProducerPriceRangeRepository::class,
            ProducerPriceRangeBuilder::class,
        ];
    }

    public function getDefinition(): ProducerPriceRangeDefinition
    {
        return ProducerPriceRangeDefinition::getInstance();
    }

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

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