<?php

namespace Lc\ShopBundle\Services ;

use Lc\ShopBundle\Context\DeliveryUtilsInterface;
use Lc\ShopBundle\Context\DocumentUtilsInterface;
use Lc\ShopBundle\Context\MerchantUtilsInterface;
use Lc\ShopBundle\Context\OrderUtilsInterface;
use Lc\ShopBundle\Context\PriceUtilsInterface;
use Lc\ShopBundle\Context\ProductFamilyUtilsInterface;
use Lc\ShopBundle\Context\Services\StatisticsUtilsInterface;
use Lc\ShopBundle\Context\UserUtilsInterface;
use League\Flysystem\Util;

class UtilsManager
{
        protected $utils ;
        protected $userUtils ;
        protected $merchantUtils ;
        protected $productFamilyUtils ;
        protected $orderUtils ;
        protected $priceUtils ;
        protected $deliveryUtils ;
        protected $creditUtils ;
        protected $documentUtils ;
        protected $mailUtils ;
        protected $ticketUtils ;
        protected $statisticsUtils;
        protected $pointLocationUtils ;

        public function __construct(
                Utils $utils,
                UserUtilsInterface $userUtils,
                MerchantUtilsInterface $merchantUtils,
                ProductFamilyUtilsInterface $productFamilyUtils,
                OrderUtilsInterface $orderUtils,
                PriceUtilsInterface $priceUtils,
                DeliveryUtilsInterface $deliveryUtils,
                CreditUtils $creditUtils,
                DocumentUtilsInterface $documentUtils,
                MailUtils $mailUtils,
                TicketUtils $ticketUtils,
                PointLocationUtils $pointLocationUtils,
                UtilsProcess $utilsProcess
        )
        {
                $this->utils = $utils ;
                $this->userUtils = $userUtils ;
                $this->merchantUtils = $merchantUtils ;
                $this->productFamilyUtils = $productFamilyUtils ;
                $this->orderUtils = $orderUtils ;
                $this->priceUtils = $priceUtils ;
                $this->deliveryUtils = $deliveryUtils ;
                $this->creditUtils = $creditUtils ;
                $this->documentUtils = $documentUtils ;
                $this->mailUtils = $mailUtils ;
                $this->ticketUtils = $ticketUtils ;
                $this->pointLocationUtils = $pointLocationUtils ;
                $this->utilsProcess = $utilsProcess ;
        }

        public function getUtils(): Utils
        {
                return $this->utils ;
        }

        public function getUserUtils(): UserUtilsInterface
        {
                return $this->userUtils ;
        }

        public function getMerchantUtils(): MerchantUtilsInterface
        {
                return $this->merchantUtils ;
        }

        public function getProductFamilyUtils(): ProductFamilyUtilsInterface
        {
                return $this->productFamilyUtils ;
        }

        public function getOrderUtils(): OrderUtilsInterface
        {
                return $this->orderUtils ;
        }

        public function getPriceUtils(): PriceUtilsInterface
        {
                return $this->priceUtils ;
        }

        public function getDeliveryUtils(): DeliveryUtilsInterface
        {
                return $this->deliveryUtils ;
        }

        public function getCreditUtils(): CreditUtils
        {
                return $this->creditUtils ;
        }

        public function getDocumentUtils(): DocumentUtilsInterface
        {
                return $this->documentUtils ;
        }

        public function getMailUtils(): MailUtils
        {
                return $this->mailUtils ;
        }

        public function getTicketUtils(): TicketUtils
        {
                return $this->ticketUtils ;
        }

        public function getPointLocationUtils(): PointLocationUtils
        {
                return $this->pointLocationUtils ;
        }

        public function getUtilsProcess(): UtilsProcess
        {
                return $this->utilsProcess ;
        }

}