<?php

namespace App\Support;

class CatalogAffiliateRegistry
{
    /**
     * @return array<string, array{label: string, aff_id: string}>
     */
    public static function affiliates(): array
    {
        $affiliates = config('catalog-affiliates.affiliates', []);

        return is_array($affiliates) ? $affiliates : [];
    }

    /**
     * @return list<string>
     */
    public static function keys(): array
    {
        return array_keys(self::affiliates());
    }

    public static function isValidKey(?string $key): bool
    {
        $key = trim((string) $key);

        return $key !== '' && array_key_exists($key, self::affiliates());
    }

    public static function affId(?string $key): ?string
    {
        if (! self::isValidKey($key)) {
            return null;
        }

        $affId = trim((string) (self::affiliates()[$key]['aff_id'] ?? ''));

        return preg_match('/^\d+$/', $affId) === 1 ? $affId : null;
    }

    public static function label(?string $key): ?string
    {
        if (! self::isValidKey($key)) {
            return null;
        }

        $label = trim((string) (self::affiliates()[$key]['label'] ?? ''));

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

    public static function clickBaseUrl(): string
    {
        $url = trim((string) config('catalog-affiliates.click_base_url', ''));

        return $url !== '' ? $url : 'https://click.validclick.net/rdr3.php';
    }
}
