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

AfterChessboardProjectCreatedEvent (Consumer)

Назначение

Обработка события о создании проекта шахматной доски. Создаёт запись ChessboardProjectEntity в БД Panoramas.

Цель

Синхронизировать появление нового проекта из внешней системы в локальном хранилище для последующего создания очереди панорам и задач.

Входные данные (Payload)

Контракт сообщения определяется пакетом Talent.Chessboard.Events. Типичные поля:

ПолеТипОбязательностьОписание
ProjectIdlongОбязательноеИдентификатор проекта
TenantIdGuidОбязательноеИдентификатор тенанта
NamestringОбязательноеНазвание проекта
VersionlongОбязательноеВерсия

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

  1. Получить payload из сообщения Kafka.
  2. Создать сущность ChessboardProjectEntity в таблице ChessboardProjectEntity: Id = ProjectId из payload, TenantId, Name, Version, RowVersion, UpdatedAt, CreatedAt.
  3. Сохранить в БД. При конфликте (уже существует) — обновить или проигнорировать в соответствии с правилами идемпотентности.

Топик

Имя топика задаётся в Talent.Chessboard.Events (например chessboard.projects.created или аналог).

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