Назначение
Lookup-получение карточки сотрудника по идентификатору пользователя. Используется для выпадающих списков и выбора сотрудника по ID. Требует разрешение Identity.Employees.View.
Цели
- Получить информацию о сотруднике по UserId
- Загрузить роли пользователя (UserRoleReferenceEntity, RoleEntity)
Query: LookupEmployeeByIdQuery
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|
| UserId | Guid | Да | Идентификатор пользователя |
Result: LookupEmployeeByIdQueryResult
| Поле | Тип | Обязательное | Описание |
|---|
| Entry | LookupEmployeeByIdQueryResultEntry | Да | Карточка сотрудника |
LookupEmployeeByIdQueryResultEntry
| Поле | Тип | Обязательное | Описание |
|---|
| UserId | Guid | Да | Идентификатор пользователя |
| CreatedAt | DateTimeOffset | Да | Дата создания |
| Email | string | Да | Email |
| PhoneNumber | string? | Нет | Телефон |
| Name | FullName | Да | ФИО |
| Status | UserStatus | Да | Статус пользователя |
| Roles | IReadOnlyCollection<string> | Да | Названия ролей |
Бизнес-логика
Основной сценарий
- Получить UserEntity через
userEntityRepository.FindById по UserId.
- Если не найден — ошибка «Сотрудник не найден».
- Загрузить UserRoleReferenceEntity через
userRoleReferenceEntityRepository.GetByUserIds.
- Загрузить RoleEntity через
roleEntityRepository.GetByIds.
- Сформировать Entry с ФИО, контактами, статусом и названиями ролей.
- Вернуть результат.
Альтернативные сценарии
- Сотрудник не найден: ошибка «Сотрудник не найден» с метаданными UserId.
Диаграмма алгоритма
Связанные сущности