<?php

namespace App\Support;

class CatalogValidClickUrl
{
    public static function build(string $affId, string $campaignId, string $subid, string $destinationUrl): string
    {
        $destinationUrl = trim($destinationUrl);

        if ($destinationUrl === '' || ! filter_var($destinationUrl, FILTER_VALIDATE_URL)) {
            return $destinationUrl;
        }

        $query = http_build_query([
            'aff_id' => $affId,
            'cid' => $campaignId,
            'subid' => $subid,
            'url' => $destinationUrl,
        ], '', '&', PHP_QUERY_RFC3986);

        return CatalogAffiliateRegistry::clickBaseUrl().'?'.$query;
    }
}
