<?php

namespace common\logic\Document\Invoice\Wrapper;

use common\logic\AbstractContainer;
use common\logic\Document\Document\Service\DocumentSolver;
use common\logic\Document\Invoice\Model\Invoice;
use common\logic\Document\Invoice\Repository\InvoiceRepository;
use common\logic\Document\Invoice\Service\InvoiceBuilder;

class InvoiceContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return Invoice::class;
    }

    public function getServices(): array
    {
        return [
            DocumentSolver::class,
            InvoiceRepository::class,
            InvoiceBuilder::class,
        ];
    }

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

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

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