diff --git a/app/app/Services/Import/HistoricalImportService.php b/app/app/Services/Import/HistoricalImportService.php index 54986945..72d7ad5d 100644 --- a/app/app/Services/Import/HistoricalImportService.php +++ b/app/app/Services/Import/HistoricalImportService.php @@ -105,7 +105,7 @@ final class HistoricalImportService } /** - * Маппит статус: каноническая таблица §6.4 → tenant-override → fallback 'new'. + * Маппит статус: StatusRuToSlugMapper → tenant-override → fallback 'new'. * Неизвестный статус инкрементит счётчик в $unknown по ссылке. * * @param array $overrides diff --git a/app/app/Services/Import/StatusRuToSlugMapper.php b/app/app/Services/Import/StatusRuToSlugMapper.php index 56111256..1235f698 100644 --- a/app/app/Services/Import/StatusRuToSlugMapper.php +++ b/app/app/Services/Import/StatusRuToSlugMapper.php @@ -5,7 +5,8 @@ declare(strict_types=1); namespace App\Services\Import; /** - * Маппинг русских названий статусов воронки в slug (ТЗ §6.4). + * Маппинг русских названий статусов (старые 14 названий поставщика + новые 5) + * в slug 5-статусной воронки (редизайн 2026-05-17). * * Чистый сервис без зависимостей. Tenant-специфичные переопределения * неизвестных статусов накладываются вызывающим кодом (HistoricalImportService). @@ -45,7 +46,8 @@ class StatusRuToSlugMapper } /** - * Полная каноническая таблица — для UI wizard'а (показать варианты). + * Полная таблица соответствия: русское название → slug 5-статусной воронки + * (18 ключей — старые и новые названия схлопываются в 5 slug'ов). * * @return array */ diff --git a/app/tests/Unit/Import/StatusRuToSlugMapperTest.php b/app/tests/Unit/Import/StatusRuToSlugMapperTest.php index 0a291664..ef0e123b 100644 --- a/app/tests/Unit/Import/StatusRuToSlugMapperTest.php +++ b/app/tests/Unit/Import/StatusRuToSlugMapperTest.php @@ -22,7 +22,8 @@ test('новые русские названия 5-статусной ворон expect($m->toSlug('Новая сделка'))->toBe('new') ->and($m->toSlug('В работе'))->toBe('in_progress') ->and($m->toSlug('Сделка'))->toBe('won') - ->and($m->toSlug('Не реализовано'))->toBe('lost'); + ->and($m->toSlug('Не реализовано'))->toBe('lost') + ->and($m->map())->toHaveCount(18); // 5 новых + 13 старых RU-названий }); test('тримит пробелы вокруг значения', function (): void {