<?php

namespace common\logic\Config\TaxRate\Module;

use common\logic\AbstractModule;
use common\logic\Config\TaxRate\Repository\TaxRateRepository;
use common\logic\Config\TaxRate\Service\TaxRateBuilder;
use common\logic\Config\TaxRate\Service\TaxRateDefinition;

/**
 * @mixin TaxRateDefinition
 * @mixin TaxRateRepository
 * @mixin TaxRateBuilder
 */
class TaxRateModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            TaxRateDefinition::class,
            TaxRateBuilder::class,
            TaxRateRepository::class,
        ];
    }

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

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

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