chore(deals): post-review cleanup — refresh stale §6.4 docs + mapper count assertion
This commit is contained in:
@@ -105,7 +105,7 @@ final class HistoricalImportService
|
||||
}
|
||||
|
||||
/**
|
||||
* Маппит статус: каноническая таблица §6.4 → tenant-override → fallback 'new'.
|
||||
* Маппит статус: StatusRuToSlugMapper → tenant-override → fallback 'new'.
|
||||
* Неизвестный статус инкрементит счётчик в $unknown по ссылке.
|
||||
*
|
||||
* @param array<string, string> $overrides
|
||||
|
||||
@@ -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<string, string>
|
||||
*/
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user