Контекст
В summary-backend готовится install onboarding, где /v1/install должен сохранять операционную запись ContactPerson из payload второй фазы. Для downstream-сценариев высокая ценность у самого ContactPerson.id и email, даже если мобильный телефон пользователя оказался невалидным.
Текущее поведение
ApplicationInstallations\UseCase\InstallContactPerson\Handler валидирует mobilePhoneNumber. Если номер невалидный или не мобильный, handler логирует предупреждение и выходит из handle() без создания ContactPerson.
Из-за этого payload с полезными fullName / email / другими атрибутами полностью теряется только из-за телефона.
Ожидаемое поведение
Невалидный mobilePhone не должен обрывать сохранение контактного лица:
ContactPerson должен быть создан, если остальные данные позволяют это сделать;
- невалидный
mobilePhone можно сохранить как null, отбросить с warning или вынести в отдельный validation result;
- handler/use case должен дать вызывающему коду понятный результат, чтобы приложение могло вернуть пользователю диагностируемую ошибку или warning, не теряя
ContactPerson.id и email.
Почему это важно
В install flow контактная персона нужна как операционная точка связи. id и email ценнее, чем валидность мобильного телефона, поэтому отказ от создания всей записи из-за одного поля ухудшает качество данных и блокирует дальнейшую диагностику.
Контекст
В
summary-backendготовится install onboarding, где/v1/installдолжен сохранять операционную записьContactPersonиз payload второй фазы. Для downstream-сценариев высокая ценность у самогоContactPerson.idи email, даже если мобильный телефон пользователя оказался невалидным.Текущее поведение
ApplicationInstallations\UseCase\InstallContactPerson\HandlerвалидируетmobilePhoneNumber. Если номер невалидный или не мобильный, handler логирует предупреждение и выходит изhandle()без созданияContactPerson.Из-за этого payload с полезными
fullName/email/ другими атрибутами полностью теряется только из-за телефона.Ожидаемое поведение
Невалидный
mobilePhoneне должен обрывать сохранение контактного лица:ContactPersonдолжен быть создан, если остальные данные позволяют это сделать;mobilePhoneможно сохранить какnull, отбросить с warning или вынести в отдельный validation result;ContactPerson.idи email.Почему это важно
В install flow контактная персона нужна как операционная точка связи.
idиemailценнее, чем валидность мобильного телефона, поэтому отказ от создания всей записи из-за одного поля ухудшает качество данных и блокирует дальнейшую диагностику.