<?php
declare(strict_types=1);

namespace Leadlion\Checkout\Plugin;

use Magento\Checkout\Model\Session;
use Magento\Sales\Model\OrderRepository;
use Mageplaza\Osc\Controller\Index\Index;

class OscIndex
{
    public function __construct(
        private readonly Session $checkoutSession,
        private readonly OrderRepository $orderRepository,
    ) {

    }

    /**
     * @param Index $subject
     *
     * @return void
     */
    public function afterExecute(Index $subject, $result)
    {
        $checkoutSession = $this->checkoutSession;

        if ($checkoutSession->getData('mobilpay_order_id')) {
            $orderId = $checkoutSession->getData('mobilpay_order_id');
            $order = $this->orderRepository->get($orderId);

            if ($order->getTotalPaid() < $order->getGrandTotal()
            || $order->getStatus() == 'custom_neplatit') {
                $quoteId = $order->getQuoteId();
                $quote = $checkoutSession->getQuote();
                $quote->load($quoteId);
                $quote->setIsActive(true)->setReservedOrderId(null)->save();
                $checkoutSession->setQuoteId($quoteId);
                $checkoutSession->replaceQuote($quote);
                $checkoutSession->unsData('mobilpay_order_id');
            }
        }
        return $result;
    }
}
