AfterContactInfoTypeInformationUpdatedEventConsumer
Назначение
Синхронизация локальной таблицы ContactInfoTypeHandbookEntity со справочником типов контактов после публикации событий из Handbooks. Используется подход Upsert с проверкой версии:
- Если сущность с Id отсутствует — создать новую.
- Если сущность существует — обновить только при payload.Version > entity.Version.
Kafka Event
- Topic:
handbooks.after-contact-information-update - Источник: Handbooks microservice
- Ordering: Гарантируется в пределах одного Id (при использовании ключа сообщения)
Payload (AfterContactInfoTypeInformationUpdatedEvent)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| Id | long | Да | ID типа контактной информации |
| CreatedAt | DateTimeOffset | Да | Дата создания |
| Code | string | Да | Системный код (phone, email, website, telegram) |
| Name | string | Да | Отображаемое название |
| Description | string? | Нет | Описание |
| IconFileId | Guid? | Нет | ID иконки |
| DisplayPosition | int | Да | Позиция сортировки |
| Version | long | Да | Версия записи |
Бизнес-логика
- Получить сообщение из Kafka.
- Вызвать Upsert в ContactInfoTypeEntityRepository:
- При отсутствии: создать новую запись с данными из payload.
- При наличии: сравнить Version; обновить только если payload.Version > entity.Version.
- Залогировать результат.