<?php

namespace common\logic\Document\Quotation\Module;

use common\logic\Document\Document\Module\DocumentModule;
use common\logic\Document\Document\Service\DocumentSolver;
use common\logic\Document\Quotation\Repository\QuotationRepository;
use common\logic\Document\Quotation\Service\QuotationBuilder;
use common\logic\Document\Quotation\Service\QuotationDefinition;

/**
 * @mixin QuotationDefinition
 * @mixin QuotationRepository
 * @mixin QuotationBuilder
 */
class QuotationModule extends DocumentModule
{
    public function getServices(): array
    {
        return [
            QuotationDefinition::class,
            DocumentSolver::class,
            QuotationRepository::class,
            QuotationBuilder::class,
        ];
    }

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

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

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

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