CompetitorPhoneEnricher: телефоны карточки → тип (city/mobile/tollfree) + регион + годность (qc=0)
через существующий DaDataPhoneClient (тот же, что резолв региона лида — §12.4, не дубль).
DaData недоступна → деградация: тип по префиксу (PhoneType), регион пуст, негоден — подбор не падает.
Номера не синтезируются, только классифицируются (берём опубликованные фирмой).
Ключ DaData — в config services.dadata (env, прод). Тест офлайн через Http::fake (реальная форма ответа).
Тесты: phone 4/4; модуль Автоподбора unit 91/91; Pint чисто.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>