<?php

namespace common\logic\Document\DeliveryNote\Wrapper;

use common\logic\AbstractContainer;
use common\logic\Document\DeliveryNote\Model\DeliveryNote;
use common\logic\Document\DeliveryNote\Repository\DeliveryNoteRepository;
use common\logic\Document\DeliveryNote\Service\DeliveryNoteBuilder;
use common\logic\Document\DeliveryNote\Service\DeliveryNoteSolver;

class DeliveryNoteContainer extends AbstractContainer
{
    public function getEntityFqcn(): string
    {
        return DeliveryNote::class;
    }

    public function getServices(): array
    {
        return [
            DeliveryNoteSolver::class,
            DeliveryNoteRepository::class,
            DeliveryNoteBuilder::class,
        ];
    }

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

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

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