<?php

namespace Lc\CaracoleBundle\Container\Order;

use App\Entity\Order\OrderPayment;
use Lc\CaracoleBundle\Factory\Order\OrderPaymentFactory;
use Lc\CaracoleBundle\Repository\Order\OrderPaymentRepositoryQuery;
use Lc\CaracoleBundle\Repository\Order\OrderPaymentStore;

class OrderPaymentContainer
{
    protected OrderPaymentFactory $factory;
    protected OrderPaymentRepositoryQuery $repositoryQuery;
    protected OrderPaymentStore $store;

    public function __construct(
            OrderPaymentFactory $factory,
            OrderPaymentRepositoryQuery $repositoryQuery,
            OrderPaymentStore $store
    ) {
        $this->factory = $factory;
        $this->repositoryQuery = $repositoryQuery;
        $this->store = $store;
    }

    public static function getEntityFqcn()
    {
        return OrderPayment::class;
    }

    public function getFactory(): OrderPaymentFactory
    {
        return $this->factory;
    }

    public function getRepositoryQuery(): OrderPaymentRepositoryQuery
    {
        return $this->repositoryQuery;
    }

    public function getStore(): OrderPaymentStore
    {
        return $this->store;
    }
}