UpdateEmployeeByUserIdCommand
Назначение
Обновление профиля сотрудника (Name, Email, PhoneNumber) и синхронизация с Keycloak через Saga. Требует разрешение Identity.Employees.Update.
Цели
- Обновить UserEntity: Name, Email, PhoneNumber
- Запустить UpdateEmployeeByUserId Saga (UpdateKeycloakUserProfile)
- Опубликовать AfterUserUpdatedNotification
Command: UpdateEmployeeByUserIdCommand
Входные данные
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| UserId | Guid | Да | Идентификатор пользователя |
| Name | FullName | Да | ФИО |
| string | Да | ||
| PhoneNumber | string? | Нет | Телефон |
Result: UpdateEmployeeByUserIdCommandResult
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| UserId | Guid | Да | Идентификатор пользователя |
| Name | FullName | Да | ФИО |
| string | Да | ||
| PhoneNumber | string? | Нет | Телефон |
Бизнес-логика
Основной сценарий
- Начать транзакцию (ReadCommitted).
- Получить UserEntity через
userEntityRepository.FindByIdпо UserId. - Если не найден — ошибка «Сотрудник не найден».
- Обновить UserEntity: Name, Email, PhoneNumber через
userEntityRepository.Update. - Создать Saga UpdateEmployeeByUserId (UpdateKeycloakUserProfile).
- Publish AfterUserUpdatedNotification.
- Commit.
- Вернуть Result.
Альтернативные сценарии
- Сотрудник не найден: ошибка «Сотрудник не найден» с метаданными UserId.
Диаграмма алгоритма
События
- UpdateEmployee Saga (UpdateKeycloakUserProfile)
- AfterUserUpdatedNotification
Связанные сущности
Обратные ссылки
Автоссылки: где используется этот документ.
- Домен (CQRS) (1): Partners Domain
- Саги (1): UpdateEmployee Saga