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

AfterContactInfoTypeInformationUpdatedEventConsumer

Назначение

Синхронизация локальной таблицы ContactInfoTypeHandbookEntity со справочником типов контактов после публикации событий из Handbooks. Используется подход Upsert с проверкой версии:

  • Если сущность с Id отсутствует — создать новую.
  • Если сущность существует — обновить только при payload.Version > entity.Version.

Kafka Event

  • Topic: handbooks.after-contact-information-update
  • Источник: Handbooks microservice
  • Ordering: Гарантируется в пределах одного Id (при использовании ключа сообщения)

Payload (AfterContactInfoTypeInformationUpdatedEvent)

ПолеТипОбязательноеОписание
IdlongДаID типа контактной информации
CreatedAtDateTimeOffsetДаДата создания
CodestringДаСистемный код (phone, email, website, telegram)
NamestringДаОтображаемое название
Descriptionstring?НетОписание
IconFileIdGuid?НетID иконки
DisplayPositionintДаПозиция сортировки
VersionlongДаВерсия записи

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

  1. Получить сообщение из Kafka.
  2. Вызвать Upsert в ContactInfoTypeEntityRepository:
    • При отсутствии: создать новую запись с данными из payload.
    • При наличии: сравнить Version; обновить только если payload.Version > entity.Version.
  3. Залогировать результат.