<?php
namespace EasyChat\Library\Catalog;









class CatalogSearchIntentResolver {

    public static function fromText(string $text): string {
        $text = self::lower(trim($text));
        if ($text === '') {
            return CatalogSearchService::INTENT_LOOKUP;
        }

        $recommendation_markers = array(
            'подбер',
            'посовет',
            'порекоменду',
            'предложи',
            'предложите',
            'вариант',
            'аналог',
            'похож',
            'что есть',
            'recommend',
            'suggest',
            'alternative',
            'similar product',
            'show me options',
        );
        foreach ($recommendation_markers as $marker) {
            if (strpos($text, $marker) !== false) {
                return CatalogSearchService::INTENT_RECOMMENDATION;
            }
        }

        return CatalogSearchService::INTENT_LOOKUP;
    }

    private static function lower(string $text): string {
        if (function_exists('mb_strtolower')) {
            return \mb_strtolower($text, 'UTF-8');
        }

         
         
         
        return strtolower(strtr($text, array(
            'А' => 'а', 'Б' => 'б', 'В' => 'в', 'Г' => 'г', 'Д' => 'д',
            'Е' => 'е', 'Ё' => 'ё', 'Ж' => 'ж', 'З' => 'з', 'И' => 'и',
            'Й' => 'й', 'К' => 'к', 'Л' => 'л', 'М' => 'м', 'Н' => 'н',
            'О' => 'о', 'П' => 'п', 'Р' => 'р', 'С' => 'с', 'Т' => 'т',
            'У' => 'у', 'Ф' => 'ф', 'Х' => 'х', 'Ц' => 'ц', 'Ч' => 'ч',
            'Ш' => 'ш', 'Щ' => 'щ', 'Ъ' => 'ъ', 'Ы' => 'ы', 'Ь' => 'ь',
            'Э' => 'э', 'Ю' => 'ю', 'Я' => 'я',
        )));
    }
}
