<?php

namespace common\logic\Document\Document\Wrapper;

use common\logic\AbstractContainer;
use common\logic\Document\Document\Model\Document;
use common\logic\Document\Document\Repository\DocumentRepository;
use common\logic\Document\Document\Service\DocumentBuilder;
use common\logic\Document\Document\Service\DocumentSolver;
use common\logic\Document\Document\Service\DocumentUtils;

class DocumentContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return Document::class;
    }

    public function getServices(): array
    {
        return [
            DocumentSolver::class,
            DocumentRepository::class,
            DocumentBuilder::class,
            DocumentUtils::class,
        ];
    }

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

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

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

    public function getUtils(): DocumentUtils
    {
        return DocumentUtils::getInstance();
    }
}