package cloud.nstart.terravault.ordinis.events.record;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.JsonNode;

import java.time.OffsetDateTime;
import java.util.UUID;

/**
 * Создана новая версия записи справочника. {@code data} — полный multi-locale
 * payload (consumer сам сплющивает по нужной локали).
 *
 * <p>{@code geometryWkt} — WKT представление геометрии (если есть). EWKT с SRID
 * 4326 для совместимости с PostGIS. Может быть null.
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public record DictionaryRecordCreated(
    UUID recordId,
    String businessKey,
    JsonNode data,
    String geometryWkt,
    OffsetDateTime validFrom,
    OffsetDateTime validTo,
    OffsetDateTime createdAt,
    String createdBy) implements DictionaryRecordEvent {

  @com.fasterxml.jackson.annotation.JsonProperty("type")
  public String type() { return "RecordCreated"; }
}
