<?php

namespace domain\Document\DeliveryNote;

use domain\Document\Document\DocumentModule;

/**
 * @mixin DeliveryNoteDefinition
 * @mixin DeliveryNoteSolver
 * @mixin DeliveryNoteRepository
 * @mixin DeliveryNoteBuilder
 */
class DeliveryNoteModule extends DocumentModule
{
    public function getServices(): array
    {
        return [
            DeliveryNoteDefinition::class,
            DeliveryNoteSolver::class,
            DeliveryNoteRepository::class,
            DeliveryNoteBuilder::class,
        ];
    }

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

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

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

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