<?php

namespace domain\Subscription\Subscription;

use domain\_\AbstractModule;

class SubscriptionModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            SubscriptionDefinition::class,
            SubscriptionSolver::class,
            SubscriptionRepository::class,
            SubscriptionBuilder::class,
            SubscriptionManager::class,
            OrderManager::class,
        ];
    }

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

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

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

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

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

    public function getOrderManager(): OrderManager
    {
        return OrderManager::getInstance();
    }
}