<?php
namespace EasyChat\Library\Support;






final class OfficialCommercialSnapshotPolicy {
    private const SNAPSHOT_URL = 'https://docs.easychat24.ru/docs/pricing/';

    public function answer(string $question, string $locale): array {
        $locale = $locale === 'en' ? 'en' : 'ru';
        $question = mb_strtolower(trim($question), 'UTF-8');
        $platform = $this->platform($question);

        if ($locale === 'en') {
            $answer = $this->englishAnswer($question, $platform);
            $title = 'EasyChat pricing and licences';
        } else {
            $answer = $this->russianAnswer($question, $platform);
            $title = 'Цены и лицензии EasyChat';
        }

        $sources = [[
            'id' => 'S1',
            'title' => $title,
            'url' => self::SNAPSHOT_URL,
             
             
            'section' => $locale === 'en' ? 'Pricing reference (dated)' : 'Справка о ценах на указанную дату',
            'locale' => $locale,
        ]];

        return [
            'answer' => $answer,
            'grounding' => [
                'status' => 'grounded',
                'confidence' => 1.0,
                'sources' => $sources,
                'clarification' => '',
                'reason' => 'signed_commercial_snapshot',
            ],
            'sources' => $sources,
            'handoff' => ['show' => false],
            'state' => 'answer',
        ];
    }

    private function platform(string $question): string {
        if (preg_match('/(?:1с[- ]?битрикс|битрикс|bitrix)/u', $question)) return 'bitrix';
        if (preg_match('/opencart/u', $question)) return 'opencart';
        if (preg_match('/(?:wordpress|woocommerce)/u', $question)) return 'wordpress';
        if (preg_match('/(?:webasyst|shop[- ]?script)/u', $question)) return 'webasyst';
        if (preg_match('/(?:generic\s*php|php)/u', $question)) return 'php';
        return '';
    }

    private function russianAnswer(string $question, string $platform): string {
        if (preg_match('/(?:бесплатн\w*\s+(?:период|проб\w*)|trial)/u', $question)) {
            return 'EasyChat можно скачать и проверить до оплаты. Подробности бесплатного старта описаны в официальной документации. Эта справка о ценах не подтверждает отдельный бесплатный период или регулярную подписку.';
        }
        $prices = [
            'bitrix' => 'Для 1С-Битрикс указана разовая лицензия 10 000 ₽.',
            'opencart' => 'Для OpenCart указана разовая лицензия 5 000 ₽.',
            'wordpress' => 'Для WordPress/WooCommerce указана разовая лицензия 6 000 ₽.',
            'webasyst' => 'Для Webasyst/Shop-Script указана разовая лицензия 6 000 ₽.',
            'php' => 'Для Generic PHP указана разовая лицензия 6 000 ₽.',
        ];
        if ($platform !== '' && isset($prices[$platform])) {
            return $prices[$platform] . ' Цена указана по состоянию на 20 августа 2026 года; перед покупкой сверяйте актуальную сумму и условия на официальной странице цен EasyChat.';
        }
        return 'По состоянию на 20 августа 2026 года указаны разовые лицензии: OpenCart — 5 000 ₽; WordPress/WooCommerce — 6 000 ₽; Webasyst/Shop-Script — 6 000 ₽; 1С-Битрикс — 10 000 ₽; Generic PHP — 6 000 ₽. Перед покупкой сверяйте актуальную сумму и условия на официальной странице цен EasyChat.';
    }

    private function englishAnswer(string $question, string $platform): string {
        if (preg_match('/(?:free\s+(?:trial|period)|бесплатн)/u', $question)) {
            return 'EasyChat can be downloaded and checked before payment. This pricing reference does not confirm a separate free trial period or recurring subscription.';
        }
        $prices = [
            'bitrix' => 'The pricing reference lists a one-time 1C-Bitrix licence at RUB 10,000.',
            'opencart' => 'The pricing reference lists a one-time OpenCart licence at RUB 5,000.',
            'wordpress' => 'The pricing reference lists a one-time WordPress/WooCommerce licence at RUB 6,000.',
            'webasyst' => 'The pricing reference lists a one-time Webasyst/Shop-Script licence at RUB 6,000.',
            'php' => 'The pricing reference lists a one-time Generic PHP licence at RUB 6,000.',
        ];
        if ($platform !== '' && isset($prices[$platform])) {
            return $prices[$platform] . ' This reference is dated 20 August 2026; check the official EasyChat pricing page for the current amount and terms before purchase.';
        }
        return 'As of 20 August 2026, the pricing reference lists one-time licences: OpenCart — RUB 5,000; WordPress/WooCommerce — RUB 6,000; Webasyst/Shop-Script — RUB 6,000; 1C-Bitrix — RUB 10,000; Generic PHP — RUB 6,000. Check the official EasyChat pricing page for the current amount and terms before purchase.';
    }
}
