<?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\Model;

use Magento\Framework\Stdlib\CookieManagerInterface;
use Anowave\Ec\Model\Cookie\AnalyticsSession;
use Anowave\Ec\Helper\Constants;

class CookieManager 
{
	/**
	 * @var CookieManagerInterface
	 */
	protected CookieManagerInterface $cookieManagerInterface;

	protected AnalyticsSession $analyticsSession;

	public function __construct
	(
		CookieManagerInterface $cookieManagerInterface,
		AnalyticsSession $analyticsSession
	)
	{
		$this->cookieManagerInterface = $cookieManagerInterface;
		$this->analyticsSession = $analyticsSession;
	}

	public function getFpidCookie()
    {
        $value = $this->cookieManagerInterface->getCookie(Constants::COOKIE_FPID);

        if (!empty($value))
        {
            return $value;
        }

        return null;
    }

	public function getGaCookie() 
	{
		$value = $this->cookieManagerInterface->getCookie(Constants::COOKIE_GA);

		if (!empty($value))
		{
			return $value;
		}

		return null;
	}

	public function getGaSessionCookie(string $measurement_id = '')
	{
		if ($measurement_id)
		{
			$value = $this->analyticsSession->raw($measurement_id);

			if (!empty($value))
			{
				return $value;
			}
		}

		return null;
	}

	public function getConsentUUIDCookie()
	{
		$value = $this->cookieManagerInterface->getCookie(Constants::COOKIE_CONSENT_UUID);

		if (!empty($value))
		{
			return $value;
		}

		return null;
	}

	public function getAnalyticsSession()
	{
		return $this->analyticsSession;
	}
}