<?php

declare(strict_types=1);

namespace App\Support;

/**
 * Утилиты для работы с identifier'ами поставщика (supplier_projects.unique_key).
 *
 * Spec: docs/superpowers/specs/2026-05-22-root-domain-auto-link-design.md §4.1
 */
class SupplierIdentifier
{
    /**
     * Извлекает корневой домен из identifier'а проекта.
     *
     * Правило: если identifier выглядит как домен с ≥3 сегментами через точку —
     * вернуть последние 2 сегмента. Иначе (уже корень, телефон, sms-ключ) — null.
     *
     * Public-suffix-list (.co.uk и т.п.) НЕ поддерживается — у проекта только
     * .ru/.рф/.com, для которых правило «2 последних сегмента» корректно.
     */
    public static function extractRootDomain(string $identifier): ?string
    {
        $trimmed = trim($identifier);
        if ($trimmed === '') {
            return null;
        }
        if (! str_contains($trimmed, '.')) {
            return null;
        }
        $parts = explode('.', $trimmed);
        if (count($parts) < 3) {
            return null;
        }

        return implode('.', array_slice($parts, -2));
    }
}
