<?php
declare(strict_types=1);

namespace Autogedal\PayPo\Plugin;

use Autogedal\PayPo\Model\PayPoContext;
use Magento\Sales\Model\Order;
use Magento\Sales\Model\Order\Email\Sender\OrderSender;
use PayPo\Payment\Model\Payment\PayPo;

class SuppressNewOrderEmailPlugin
{
    public function __construct(
        private readonly PayPoContext $payPoContext
    ) {
    }

    public function aroundSend(OrderSender $subject, callable $proceed, Order $order, bool $forceSyncMode = false): bool
    {
        if ($order->getPayment()?->getMethod() === PayPo::METHOD_CODE
            && !$this->payPoContext->isSendingApprovedEmail()
        ) {
            return false;
        }

        return $proceed($order, $forceSyncMode);
    }
}
