Перейти к основному содержимому

UpdateEmployeeByUserIdCommand

Назначение

Обновление профиля сотрудника (Name, Email, PhoneNumber) и синхронизация с Keycloak через Saga. Требует разрешение Identity.Employees.Update.

Цели

  • Обновить UserEntity: Name, Email, PhoneNumber
  • Запустить UpdateEmployeeByUserId Saga (UpdateKeycloakUserProfile)
  • Опубликовать AfterUserUpdatedNotification

Command: UpdateEmployeeByUserIdCommand

Входные данные

ПолеТипОбязательноеОписание
UserIdGuidДаИдентификатор пользователя
NameFullNameДаФИО
EmailstringДаEmail
PhoneNumberstring?НетТелефон

Result: UpdateEmployeeByUserIdCommandResult

ПолеТипОбязательноеОписание
UserIdGuidДаИдентификатор пользователя
NameFullNameДаФИО
EmailstringДаEmail
PhoneNumberstring?НетТелефон

Бизнес-логика

Основной сценарий

  1. Начать транзакцию (ReadCommitted).
  2. Получить UserEntity через userEntityRepository.FindById по UserId.
  3. Если не найден — ошибка «Сотрудник не найден».
  4. Обновить UserEntity: Name, Email, PhoneNumber через userEntityRepository.Update.
  5. Создать Saga UpdateEmployeeByUserId (UpdateKeycloakUserProfile).
  6. Publish AfterUserUpdatedNotification.
  7. Commit.
  8. Вернуть Result.

Альтернативные сценарии

  • Сотрудник не найден: ошибка «Сотрудник не найден» с метаданными UserId.

Диаграмма алгоритма

События

Связанные сущности