<?php

namespace common\logic\Feature\Feature;

use common\logic\AbstractModule;

class FeatureModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            FeatureDefinition::class,
            FeatureRepository::class,
            FeatureChecker::class,
            FeatureBuilder::class,
            FeatureImporter::class,
            FeatureManager::class
        ];
    }

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

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

    public function getChecker(): FeatureChecker
    {
        return FeatureChecker::getInstance();
    }

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

    public function getImporter(): FeatureImporter
    {
        return FeatureImporter::getInstance();
    }

    public function getManager(): FeatureManager
    {
        return FeatureManager::getInstance();
    }
}