<?php

namespace domain\Subscription\Subscription;

use domain\Distribution\Distribution\DistributionRepository;
use domain\Distribution\Distribution\DistributionSolver;
use domain\Order\Order\Order;
use domain\Order\Order\OrderBuilder;
use domain\Order\Order\OrderRepository;
use domain\_\AbstractManager;

class OrderManager extends AbstractManager
{
    protected DistributionSolver $distributionSolver;
    protected DistributionRepository $distributionRepository;
    protected OrderRepository $orderRepository;
    protected OrderBuilder $orderBuilder;
    protected SubscriptionRepository $subscriptionRepository;
    protected SubscriptionSolver $subscriptionSolver;

    public function loadDependencies(): void
    {
        $this->distributionSolver = $this->loadService(DistributionSolver::class);
        $this->distributionRepository = $this->loadService(DistributionRepository::class);
        $this->orderRepository = $this->loadService(OrderRepository::class);
        $this->orderBuilder = $this->loadService(OrderBuilder::class);
        $this->subscriptionRepository = $this->loadService(SubscriptionRepository::class);
        $this->subscriptionSolver = $this->loadService(SubscriptionSolver::class);
    }
}