From 381161f00345612a1789e08243746083dff884c5 Mon Sep 17 00:00:00 2001 From: Janis Date: Fri, 22 May 2026 10:22:43 +0200 Subject: [PATCH] feat(config): add GameWritebackEventDtoMixin for JSON deserialization --- .../store/config/GameWritebackEventDtoMixin.scala | 10 ++++++++++ .../scala/de/nowchess/store/config/JacksonConfig.scala | 2 ++ 2 files changed, 12 insertions(+) create mode 100644 modules/store/src/main/scala/de/nowchess/store/config/GameWritebackEventDtoMixin.scala diff --git a/modules/store/src/main/scala/de/nowchess/store/config/GameWritebackEventDtoMixin.scala b/modules/store/src/main/scala/de/nowchess/store/config/GameWritebackEventDtoMixin.scala new file mode 100644 index 0000000..eb446dc --- /dev/null +++ b/modules/store/src/main/scala/de/nowchess/store/config/GameWritebackEventDtoMixin.scala @@ -0,0 +1,10 @@ +package de.nowchess.store.config + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize + +abstract class GameWritebackEventDtoMixin: + @JsonDeserialize(contentAs = classOf[java.lang.Long]) val whiteRemainingMs: Option[Long] + @JsonDeserialize(contentAs = classOf[java.lang.Long]) val blackRemainingMs: Option[Long] + @JsonDeserialize(contentAs = classOf[java.lang.Long]) val incrementMs: Option[Long] + @JsonDeserialize(contentAs = classOf[java.lang.Long]) val clockLastTickAt: Option[Long] + @JsonDeserialize(contentAs = classOf[java.lang.Long]) val clockMoveDeadline: Option[Long] diff --git a/modules/store/src/main/scala/de/nowchess/store/config/JacksonConfig.scala b/modules/store/src/main/scala/de/nowchess/store/config/JacksonConfig.scala index 5042bb2..d0d2f7a 100644 --- a/modules/store/src/main/scala/de/nowchess/store/config/JacksonConfig.scala +++ b/modules/store/src/main/scala/de/nowchess/store/config/JacksonConfig.scala @@ -3,6 +3,7 @@ package de.nowchess.store.config import com.fasterxml.jackson.core.Version import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.scala.DefaultScalaModule +import de.nowchess.api.dto.GameWritebackEventDto import io.quarkus.jackson.ObjectMapperCustomizer import jakarta.inject.Singleton @@ -15,3 +16,4 @@ class JacksonConfig extends ObjectMapperCustomizer: new Version(2, 21, 1, null, "com.fasterxml.jackson.module", "jackson-module-scala") // scalafix:on DisableSyntax.null }) + mapper.addMixIn(classOf[GameWritebackEventDto], classOf[GameWritebackEventDtoMixin])