<?php

namespace domain\Order\Order;

use domain\_\AbstractModule;

class OrderModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            OrderDefinition::class,
            OrderSolver::class,
            OrderRepository::class,
            OrderBuilder::class,
            OrderResolver::class,
            OrderManager::class,
            OrderDocumentManager::class,
            TillerManager::class,
        ];
    }

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

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

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

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

    public function getResolver(): OrderResolver
    {
        return OrderResolver::getInstance();
    }

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

    public function getDocumentManager(): OrderDocumentManager
    {
        return OrderDocumentManager::getInstance();
    }

    public function getTillerManager(): TillerManager
    {
        return TillerManager::getInstance();
    }
}