GetUserContactsListQuery
Назначение
Получение полного списка контактной информации пользователя по идентификатору пользователя. Используется для просмотра контактов другого пользователя (с проверкой прав на уровне API/middleware).
Цели
- Загрузить все UserContactEntity пользователя по UserId
- Получить информацию о типе контакта (ContactInfoType) для каждого контакта
Query: GetUserContactsListQuery
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| UserId | Guid | Да | Идентификатор пользователя |
Result: GetUserContactsListResult
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| 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.