<?php

namespace App\Support;

class CatalogValidClickSubid
{
    public static function fromUtm(?string $utmSource, ?string $utmCampaign): string
    {
        $source = self::segment($utmSource) ?? 'direct';
        $campaign = self::segment($utmCampaign) ?? 'direct';

        return $source.'_'.$campaign;
    }

    private static function segment(?string $value): ?string
    {
        $value = trim((string) $value);

        if ($value === '') {
            return null;
        }

        $normalized = preg_replace('/[^a-zA-Z0-9._-]+/', '_', $value) ?? '';

        return $normalized !== '' ? $normalized : null;
    }
}
