<?php

declare(strict_types=1);

/**
 * Unified validator for CPF or CNPJ (numeric or alphanumeric CNPJ).
 *
 * Decision:
 * - CPF: normalized is exactly 11 digits.
 * - CNPJ: normalized is 14 chars and matches CnpjAlpha::REGEX_NORMALIZED.
 */
final class Agro_Validate_CpfCnpjValidate
{
    public static function isValid(string $value): bool
    {
        $cpfNorm = Agro_Validate_Cpf::normalize($value);
        if (preg_match('/^\d{11}$/', $cpfNorm)) {
            return Agro_Validate_Cpf::isValid($cpfNorm);
        }

        $cnpjNorm = Agro_Validate_CnpjAlpha::normalize($value);
        if (preg_match('/^[A-Z0-9]{12}\d{2}$/', $cnpjNorm)) {
            return Agro_Validate_CnpjAlpha::isValid($cnpjNorm);
        }

        return false;
    }
}