Назначение
Получение полного списка контактной информации пользователя по идентификатору пользователя. Используется для просмотра контактов другого пользователя (с проверкой прав на уровне API/middleware).
Цели
- Загрузить все UserContactEntity пользователя по UserId
- Получить информацию о типе контакта (ContactInfoType) для каждого контакта
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|
| UserId | Guid | Да | Идентификатор пользователя |
| Поле | Тип | Обязательное | Описание |
|---|
| Entries | IReadOnlyCollection<GetUserContactsListResultEntry> | Да | Список контактов |
ResultEntry: GetUserContactsListResultEntry
| Поле | Тип | Обязательное | Описание |
|---|
| ContactId | Guid | Да | Идентификатор контакта |
| Value | string | Да | Значение контакта |
| ContactInfoType | ContactInfoTypeDomainModel | Да | Тип контакта (ContactInfoTypeId, Code, Name, Description, IconFileId) |
Бизнес-логика
Основной сценарий
- Получить UserEntity из
userEntityRepository.FindById по UserId.
- Если не найден — ошибка «Пользователь не найден».
- Получить UserContactEntity через
userContactEntityRepository.GetByUserId.
- Загрузить ContactInfoTypeEntity по ContactInfoTypeId через
contactInfoTypeEntityRepository.GetByIds.
- Сформировать Entries с ContactInfoType.
- Вернуть результат.
Альтернативные сценарии
- Пользователь не найден: ошибка «Пользователь не найден» с метаданными UserId.
Диаграмма алгоритма
Связанные сущности
Обратные ссылки
Автоссылки: где используется этот документ.