<?php
declare(strict_types=1);

namespace Celena\Plugin\Analytics\Support;

/**
 * Утилиты URL для аналитики. appHost() — хост текущего сайта из config('app.url'),
 * чтобы отличать внутренние переходы от внешних без хардкода домена (работает и локально).
 */
final class Url
{
    /** Хост сайта из APP_URL (например, "celena.io" или "celena"). */
    public static function appHost(): string
    {
        $h = (string) parse_url((string) (config('app.url') ?? ''), PHP_URL_HOST);
        return strtolower($h);
    }

    /** Является ли referrer внутренним (тот же хост, что и сайт). */
    public static function isInternal(string $referrer): bool
    {
        $appHost = self::appHost();
        if ($appHost === '') {
            return false;
        }
        $refHost = strtolower((string) parse_url($referrer, PHP_URL_HOST));
        if ($refHost === '') {
            return false;
        }
        return $refHost === $appHost
            || str_ends_with($refHost, '.' . $appHost)
            || str_ends_with($appHost, '.' . $refHost);
    }

    /** Хост из URL (для группировки реферреров). */
    public static function host(string $url): string
    {
        return strtolower((string) parse_url($url, PHP_URL_HOST));
    }
}
