<?php
/**
 * Magento 2 Google Analytics 4 (GA4) GTM
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Anowave license that is
 * available through the world-wide-web at this URL:
 * https://www.anowave.com/license-agreement/
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade this extension to newer
 * version in the future.
 *
 * @category 	Anowave
 * @package 	Anowave_Ec
 * @copyright 	Copyright (c) 2026 Anowave (https://www.anowave.com/)
 * @license  	https://www.anowave.com/license-agreement/
 */

namespace Anowave\Ec\Observer;

use Magento\Catalog\Api\Data\ProductInterface;
use Magento\Framework\Event\Observer as Event;
use Magento\Framework\Event\ObserverInterface;
use Anowave\Ec\Registry\CurrentProduct;
use Anowave\Ec\Registry\CurrentCategory;
/**
 * Class RegisterCurrentProductObserver
 *
 * Current product observer
 */
class RegisterCurrentProduct implements ObserverInterface
{
    /**
     * @var CurrentProduct
     */
    private $currentProduct;

    private $currentCategory;

    public function __construct
    (
        CurrentProduct $currentProduct,
        CurrentCategory $currentCategory
    ) 
    {
        $this->currentProduct = $currentProduct;
        $this->currentCategory = $currentCategory;
    }

    /**
     * Trigger event
     *
     * @param Event $event
     */
    public function execute(Event $event)
    {
        /** 
         * @var ProductInterface $product 
         **/
        $product = $event->getData('product');

        $this->currentProduct->set($product);

        if ($product->getCategory())
        {
            $this->currentCategory->set($product->getCategory());
        }
    }
}