<?php

namespace common\logic\Subscription\Subscription\Wrapper;

use common\logic\AbstractContainer;
use common\logic\Subscription\Subscription\Model\Subscription;
use common\logic\Subscription\Subscription\Repository\SubscriptionRepository;
use common\logic\Subscription\Subscription\Service\SubscriptionBuilder;
use common\logic\Subscription\Subscription\Service\SubscriptionSolver;

class SubscriptionContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return Subscription::class;
    }

    public function getServices(): array
    {
        return [
            SubscriptionSolver::class,
            SubscriptionRepository::class,
            SubscriptionBuilder::class
        ];
    }

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

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

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