<?php

namespace domain\Payment;

use domain\_\AbstractModule;

class PaymentModule extends AbstractModule
{
    public function getServices(): array
    {
        return [
            PaymentDefinition::class,
            PaymentSolver::class,
            PaymentBuilder::class,
            PaymentRepository::class,
            PaymentNotifier::class,
            PaymentManager::class,
        ];
    }

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

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

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

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

    public function getNotifier(): PaymentNotifier
    {
        return PaymentNotifier::getInstance();
    }

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