<?php

namespace common\components;

use common\logic\Config\TaxRate\Wrapper\TaxRateContainer;
use common\logic\Config\TaxRate\Wrapper\TaxRateManager;
use common\logic\Distribution\Distribution\Wrapper\DistributionManager;
use common\logic\Distribution\Distribution\Wrapper\DistributionContainer;
use common\logic\Distribution\PointSaleDistribution\Wrapper\PointSaleDistributionContainer;
use common\logic\Distribution\PointSaleDistribution\Wrapper\PointSaleDistributionManager;
use common\logic\Distribution\ProductDistribution\Wrapper\ProductDistributionContainer;
use common\logic\Distribution\ProductDistribution\Wrapper\ProductDistributionManager;
use common\logic\Document\DeliveryNote\Wrapper\DeliveryNoteContainer;
use common\logic\Document\DeliveryNote\Wrapper\DeliveryNoteManager;
use common\logic\Document\Document\Wrapper\DocumentContainer;
use common\logic\Document\Document\Wrapper\DocumentManager;
use common\logic\Document\Invoice\Wrapper\InvoiceContainer;
use common\logic\Document\Invoice\Wrapper\InvoiceManager;
use common\logic\Document\Quotation\Wrapper\QuotationContainer;
use common\logic\Document\Quotation\Wrapper\QuotationManager;
use common\logic\Order\Order\Wrapper\OrderContainer;
use common\logic\Order\Order\Wrapper\OrderManager;
use common\logic\Order\OrderStatusHistory\Wrapper\OrderStatusHistoryContainer;
use common\logic\Order\OrderStatusHistory\Wrapper\OrderStatusHistoryManager;
use common\logic\Order\ProductOrder\Wrapper\ProductOrderContainer;
use common\logic\Order\ProductOrder\Wrapper\ProductOrderManager;
use common\logic\PointSale\PointSale\Wrapper\PointSaleContainer;
use common\logic\PointSale\PointSale\Wrapper\PointSaleManager;
use common\logic\PointSale\UserPointSale\Wrapper\UserPointSaleContainer;
use common\logic\PointSale\UserPointSale\Wrapper\UserPointSaleManager;
use common\logic\Producer\Producer\Wrapper\ProducerContainer;
use common\logic\Producer\Producer\Wrapper\ProducerManager;
use common\logic\Producer\ProducerPriceRange\Wrapper\ProducerPriceRangeContainer;
use common\logic\Producer\ProducerPriceRange\Wrapper\ProducerPriceRangeManager;
use common\logic\Product\Product\Wrapper\ProductContainer;
use common\logic\Product\Product\Wrapper\ProductManager;
use common\logic\Product\ProductCategory\Wrapper\ProductCategoryContainer;
use common\logic\Product\ProductCategory\Wrapper\ProductCategoryManager;
use common\logic\Product\ProductPointSale\Wrapper\ProductPointSaleContainer;
use common\logic\Product\ProductPointSale\Wrapper\ProductPointSaleManager;
use common\logic\Product\ProductPrice\Wrapper\ProductPriceContainer;
use common\logic\Product\ProductPrice\Wrapper\ProductPriceManager;
use common\logic\Subscription\ProductSubscription\Wrapper\ProductSubscriptionContainer;
use common\logic\Subscription\ProductSubscription\Wrapper\ProductSubscriptionManager;
use common\logic\Subscription\Subscription\Wrapper\SubscriptionContainer;
use common\logic\Subscription\Subscription\Wrapper\SubscriptionManager;
use common\logic\User\CreditHistory\Wrapper\CreditHistoryContainer;
use common\logic\User\CreditHistory\Wrapper\CreditHistoryManager;
use common\logic\User\User\Wrapper\UserContainer;
use common\logic\User\User\Wrapper\UserManager;
use common\logic\User\UserGroup\Wrapper\UserGroupContainer;
use common\logic\User\UserGroup\Wrapper\UserGroupManager;
use common\logic\User\UserProducer\Wrapper\UserProducerContainer;
use common\logic\User\UserProducer\Wrapper\UserProducerManager;
use common\logic\User\UserUserGroup\Wrapper\UserUserGroupContainer;
use common\logic\User\UserUserGroup\Wrapper\UserUserGroupManager;

trait BusinessLogicTrait
{
    public function getUserProducerManager(): UserProducerManager
    {
        return UserProducerManager::getInstance();
    }

    public function getOrderManager(): OrderManager
    {
        return OrderManager::getInstance();
    }

    public function getTaxRateManager(): TaxRateManager
    {
        return TaxRateManager::getInstance();
    }

    public function getDistributionManager(): DistributionManager
    {
        return DistributionManager::getInstance();
    }

    public function getPointSaleDistributionManager(): PointSaleDistributionManager
    {
        return PointSaleDistributionManager::getInstance();
    }

    public function getProductDistributionManager(): ProductDistributionManager
    {
        return ProductDistributionManager::getInstance();
    }

    public function getDeliveryNoteManager(): DeliveryNoteManager
    {
        return DeliveryNoteManager::getInstance();
    }

    public function getDocumentManager(): DocumentManager
    {
        return DocumentManager::getInstance();
    }

    public function getInvoiceManager(): InvoiceManager
    {
        return InvoiceManager::getInstance();
    }

    public function getQuotationManager(): QuotationManager
    {
        return QuotationManager::getInstance();
    }

    public function getOrderStatusHistoryManager(): OrderStatusHistoryManager
    {
        return OrderStatusHistoryManager::getInstance();
    }

    public function getProductOrderManager(): ProductOrderManager
    {
        return ProductOrderManager::getInstance();
    }

    public function getPointSaleManager(): PointSaleManager
    {
        return PointSaleManager::getInstance();
    }

    public function getUserPointSaleManager(): UserPointSaleManager
    {
        return UserPointSaleManager::getInstance();
    }

    public function getProducerManager(): ProducerManager
    {
        return ProducerManager::getInstance();
    }

    public function getProducerPriceRangeManager(): ProducerPriceRangeManager
    {
        return ProducerPriceRangeManager::getInstance();
    }

    public function getProductManager(): ProductManager
    {
        return ProductManager::getInstance();
    }

    public function getProductCategoryManager(): ProductCategoryManager
    {
        return ProductCategoryManager::getInstance();
    }

    public function getProductPointSaleManager(): ProductPointSaleManager
    {
        return ProductPointSaleManager::getInstance();
    }

    public function getProductPriceManager(): ProductPriceManager
    {
        return ProductPriceManager::getInstance();
    }

    public function getProductSubscriptionManager(): ProductSubscriptionManager
    {
        return ProductSubscriptionManager::getInstance();
    }

    public function getSubscriptionManager(): SubscriptionManager
    {
        return SubscriptionManager::getInstance();
    }

    public function getCreditHistoryManager(): CreditHistoryManager
    {
        return CreditHistoryManager::getInstance();
    }

    public function getUserManager(): UserManager
    {
        return UserManager::getInstance();
    }

    public function getUserGroupManager(): UserGroupManager
    {
        return UserGroupManager::getInstance();
    }

    public function getUserUserGroupManager(): UserUserGroupManager
    {
        return UserUserGroupManager::getInstance();
    }

    public function getUserContainer(): UserContainer
    {
        return UserContainer::getInstance();
    }

    public function getProducerContainer(): ProducerContainer
    {
        return ProducerContainer::getInstance();
    }

    public function getProducerPriceRangeContainer(): ProducerPriceRangeContainer
    {
        return ProducerPriceRangeContainer::getInstance();
    }

    public function getUserProducerContainer(): UserProducerContainer
    {
        return UserProducerContainer::getInstance();
    }

    public function getCreditHistoryContainer(): CreditHistoryContainer
    {
        return CreditHistoryContainer::getInstance();
    }

    public function getDocumentContainer(): DocumentContainer
    {
        return DocumentContainer::getInstance();
    }

    public function getDeliveryNoteContainer(): DeliveryNoteContainer
    {
        return DeliveryNoteContainer::getInstance();
    }

    public function getInvoiceContainer(): InvoiceContainer
    {
        return InvoiceContainer::getInstance();
    }

    public function getQuotationContainer(): QuotationContainer
    {
        return QuotationContainer::getInstance();
    }

    public function getUserGroupContainer(): UserGroupContainer
    {
        return UserGroupContainer::getInstance();
    }

    public function getUserUserGroupContainer(): UserUserGroupContainer
    {
        return UserUserGroupContainer::getInstance();
    }

    public function getDistributionContainer(): DistributionContainer
    {
        return DistributionContainer::getInstance();
    }

    public function getTaxRateContainer(): TaxRateContainer
    {
        return TaxRateContainer::getInstance();
    }

    public function getOrderContainer(): OrderContainer
    {
        return OrderContainer::getInstance();
    }

    public function getOrderSatusHistoryContainer(): OrderStatusHistoryContainer
    {
        return OrderStatusHistoryContainer::getInstance();
    }

    public function getUserPointSaleContainer(): UserPointSaleContainer
    {
        return UserPointSaleContainer::getInstance();
    }

    public function getPointSaleContainer(): PointSaleContainer
    {
        return PointSaleContainer::getInstance();
    }

    public function getProductOrderContainer(): ProductOrderContainer
    {
        return ProductOrderContainer::getInstance();
    }

    public function getProductContainer(): ProductContainer
    {
        return ProductContainer::getInstance();
    }

    public function getProductCategoryContainer(): ProductCategoryContainer
    {
        return ProductCategoryContainer::getInstance();
    }

    public function getProductPointSaleContainer(): ProductPointSaleContainer
    {
        return ProductPointSaleContainer::getInstance();
    }

    public function getProductPriceContainer(): ProductPriceContainer
    {
        return ProductPriceContainer::getInstance();
    }

    public function getSubscriptionContainer(): SubscriptionContainer
    {
        return SubscriptionContainer::getInstance();
    }

    public function getProductSubscriptionContainer(): ProductSubscriptionContainer
    {
        return ProductSubscriptionContainer::getInstance();
    }

    public function getPointSaleDistributionContainer(): PointSaleDistributionContainer
    {
        return PointSaleDistributionContainer::getInstance();
    }

    public function getProductDistributionContainer(): ProductDistributionContainer
    {
        return ProductDistributionContainer::getInstance();
    }
}