<?php
/**
 * SHOW_SITE_COUNTRY 允许列表解析与比对
 */
class CountryAllowlist
{
    /**
     * @param string $config 逗号分隔国家码，如 US,GB,CA
     * @return string[]
     */
    public static function parse($config)
    {
        $config = strtoupper(trim((string) $config));
        if ($config === '') {
            return [];
        }
        $parts = preg_split('/\s*,\s*/', $config);
        $out   = [];
        foreach ($parts as $part) {
            $part = trim($part);
            if ($part !== '') {
                $out[] = $part;
            }
        }
        return array_values(array_unique($out));
    }

    /**
     * @param string|null $countryCode
     * @param string[]    $allowlist
     */
    public static function isAllowed($countryCode, array $allowlist)
    {
        if ($allowlist === []) {
            return true;
        }
        if ($countryCode === null || $countryCode === '') {
            return false;
        }
        return in_array(strtoupper($countryCode), $allowlist, true);
    }
}
