From 0fc488c3f9e29f5e9f1092f8081714c9e820f178 Mon Sep 17 00:00:00 2001 From: Kostya Date: Thu, 20 Aug 2026 12:09:20 +0300 Subject: Move CommissionTiming and MechanismType into model.event package Groups them with the other event-domain enums instead of the general api package, and updates all call sites accordingly. --- .../service/catalog/infrastructure/adapter/EventDeserializer.java | 6 ++++-- .../catalog/infrastructure/adapter/TradingMechanismAdapter.java | 6 +++--- .../service/catalog/infrastructure/mapper/v1/EventMapperV1.java | 2 +- .../service/catalog/infrastructure/mapper/v2/EventMapperV2.java | 2 +- service/src/main/java/market/guess/service/domain/Event.java | 2 +- .../market/guess/service/fulfillment/LocalFulfillmentContext.java | 2 +- .../java/market/guess/service/mechanism/LmsrTradingMechanism.java | 2 +- .../market/guess/service/mechanism/OrderBookTradingMechanism.java | 2 +- .../main/java/market/guess/service/mechanism/TradingMechanism.java | 2 +- .../market/guess/service/settlement/LocalSettlementContext.java | 6 +++--- service/src/test/java/market/guess/service/Ex1FullTest.java | 4 +--- 11 files changed, 18 insertions(+), 18 deletions(-) (limited to 'service') diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java index 69a8447..e40d633 100644 --- a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java +++ b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/EventDeserializer.java @@ -7,7 +7,7 @@ import com.google.gson.JsonParseException; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.List; -import market.guess.api.CommissionTiming; +import market.guess.model.event.CommissionTiming; import market.guess.model.event.EventStatus; import market.guess.service.domain.Event; import market.guess.service.domain.Market; @@ -45,7 +45,9 @@ public final class EventDeserializer implements JsonDeserializer { obj.get("runningId").getAsInt(), trades, context.deserialize(obj.get("state"), EventStatus.class), - winningOptionKey == null || winningOptionKey.isJsonNull() ? null : winningOptionKey.getAsString(), + winningOptionKey == null || winningOptionKey.isJsonNull() + ? null + : winningOptionKey.getAsString(), obj.get("settlementCommission").getAsBigDecimal()); } } diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java index ac3da8b..1fa2b9a 100644 --- a/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java +++ b/service/src/main/java/market/guess/service/catalog/infrastructure/adapter/TradingMechanismAdapter.java @@ -7,14 +7,14 @@ import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import java.lang.reflect.Type; -import market.guess.api.MechanismType; +import market.guess.model.event.MechanismType; import market.guess.service.mechanism.LmsrTradingMechanism; import market.guess.service.mechanism.OrderBookTradingMechanism; import market.guess.service.mechanism.TradingMechanism; /** - * TradingMechanism is a sealed interface, so Gson can't tell which implementation to build from - * the JSON alone; this tags the JSON with a type discriminator and dispatches on it. + * TradingMechanism is a sealed interface, so Gson can't tell which implementation to build from the + * JSON alone; this tags the JSON with a type discriminator and dispatches on it. */ public final class TradingMechanismAdapter implements JsonSerializer, JsonDeserializer { diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java index b9c43bb..fa1c5ab 100644 --- a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java +++ b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v1/EventMapperV1.java @@ -2,7 +2,7 @@ package market.guess.service.catalog.infrastructure.mapper.v1; import java.util.ArrayList; import java.util.List; -import market.guess.api.CommissionTiming; +import market.guess.model.event.CommissionTiming; import market.guess.model.event.EventStatus; import market.guess.service.catalog.infrastructure.mapper.Mapper; import market.guess.service.catalog.model.v1.GMEvent; diff --git a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java index 82455f1..bcdce94 100644 --- a/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java +++ b/service/src/main/java/market/guess/service/catalog/infrastructure/mapper/v2/EventMapperV2.java @@ -2,7 +2,7 @@ package market.guess.service.catalog.infrastructure.mapper.v2; import java.util.ArrayList; import java.util.List; -import market.guess.api.CommissionTiming; +import market.guess.model.event.CommissionTiming; import market.guess.model.event.EventStatus; import market.guess.service.catalog.infrastructure.mapper.Mapper; import market.guess.service.catalog.model.v2.GMEvent; diff --git a/service/src/main/java/market/guess/service/domain/Event.java b/service/src/main/java/market/guess/service/domain/Event.java index e1b366e..1e17457 100644 --- a/service/src/main/java/market/guess/service/domain/Event.java +++ b/service/src/main/java/market/guess/service/domain/Event.java @@ -4,10 +4,10 @@ import java.math.BigDecimal; import java.time.Instant; import java.util.ArrayList; import java.util.List; -import market.guess.api.CommissionTiming; import market.guess.api.MarketDTO; import market.guess.api.MarketStateDTO; import market.guess.api.TradeRowDTO; +import market.guess.model.event.CommissionTiming; import market.guess.model.event.EventStatus; import market.guess.model.event.EventSummaryDTO; import market.guess.model.ledger.LedgerType; diff --git a/service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java b/service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java index cbbfafd..d1006bc 100644 --- a/service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java +++ b/service/src/main/java/market/guess/service/fulfillment/LocalFulfillmentContext.java @@ -3,7 +3,7 @@ package market.guess.service.fulfillment; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; -import market.guess.api.CommissionTiming; +import market.guess.model.event.CommissionTiming; import market.guess.model.ledger.LedgerType; import market.guess.service.domain.Order; import market.guess.service.domain.Trade; diff --git a/service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java b/service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java index 981e733..c133ac7 100644 --- a/service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java +++ b/service/src/main/java/market/guess/service/mechanism/LmsrTradingMechanism.java @@ -5,7 +5,7 @@ import java.time.Clock; import java.time.Instant; import java.util.Arrays; import java.util.List; -import market.guess.api.MechanismType; +import market.guess.model.event.MechanismType; import market.guess.service.domain.Event; import market.guess.service.domain.Market; import market.guess.service.domain.Trade; diff --git a/service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java b/service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java index fd03750..ba88d06 100644 --- a/service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java +++ b/service/src/main/java/market/guess/service/mechanism/OrderBookTradingMechanism.java @@ -5,7 +5,7 @@ import java.math.RoundingMode; import java.time.Instant; import java.util.ArrayList; import java.util.List; -import market.guess.api.MechanismType; +import market.guess.model.event.MechanismType; import market.guess.service.domain.Event; import market.guess.service.domain.Market; import market.guess.service.domain.Trade; diff --git a/service/src/main/java/market/guess/service/mechanism/TradingMechanism.java b/service/src/main/java/market/guess/service/mechanism/TradingMechanism.java index 30d076d..90e696d 100644 --- a/service/src/main/java/market/guess/service/mechanism/TradingMechanism.java +++ b/service/src/main/java/market/guess/service/mechanism/TradingMechanism.java @@ -3,7 +3,7 @@ package market.guess.service.mechanism; import java.math.BigDecimal; import java.time.Instant; import java.util.List; -import market.guess.api.MechanismType; +import market.guess.model.event.MechanismType; import market.guess.service.domain.Event; import market.guess.service.domain.Market; import market.guess.service.domain.Trade; diff --git a/service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java b/service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java index f6e9b67..d970b03 100644 --- a/service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java +++ b/service/src/main/java/market/guess/service/settlement/LocalSettlementContext.java @@ -2,7 +2,7 @@ package market.guess.service.settlement; import java.math.BigDecimal; import java.util.HashMap; -import market.guess.api.CommissionTiming; +import market.guess.model.event.CommissionTiming; import market.guess.model.event.EventStatus; import market.guess.model.ledger.LedgerType; import market.guess.service.domain.Event; @@ -20,6 +20,7 @@ public final class LocalSettlementContext implements SettlementContext { public BigDecimal settle(Event event, String winningOptionKey) { event.setWinningOptionKey(winningOptionKey); + // TODO: abstract the commission charge away var chargeCommission = event.getCommissionTiming() == CommissionTiming.ON_CLOSE; var rate = BigDecimal.valueOf(event.getCommissionPercent()).divide(BigDecimal.valueOf(100)); var winningOption = event.getOption(winningOptionKey); @@ -40,8 +41,7 @@ public final class LocalSettlementContext implements SettlementContext { var net = gross.subtract(commission); ledger.credit(entry.getKey(), LedgerType.PAYOUT, net, "Payout: " + winningOption.getName()); - ledger.debit( - event.getLedger(), LedgerType.PAYOUT, net, "Payout: " + winningOption.getName()); + ledger.debit(event.getLedger(), LedgerType.PAYOUT, net, "Payout: " + winningOption.getName()); event.addSettlementCommission(commission); totalPayout = totalPayout.add(net); } diff --git a/service/src/test/java/market/guess/service/Ex1FullTest.java b/service/src/test/java/market/guess/service/Ex1FullTest.java index 6718142..38d21c2 100644 --- a/service/src/test/java/market/guess/service/Ex1FullTest.java +++ b/service/src/test/java/market/guess/service/Ex1FullTest.java @@ -7,7 +7,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.time.Instant; import java.util.List; -import market.guess.api.CommissionTiming; +import market.guess.model.event.CommissionTiming; import market.guess.model.event.EventStatus; import market.guess.service.catalog.LocalCatalogContext; import market.guess.service.catalog.infrastructure.MarketContext; @@ -18,9 +18,7 @@ import market.guess.service.catalog.infrastructure.repository.InMemoryEventRepos import market.guess.service.catalog.infrastructure.repository.InMemoryUserRepository; import market.guess.service.domain.Event; import market.guess.service.domain.Market; -import market.guess.service.domain.User; import market.guess.service.fulfillment.LocalFulfillmentContext; -import market.guess.service.helpers.BigDecimalOptions; import market.guess.service.ledger.LedgerContext; import market.guess.service.matching.LocalMatchingEngine; import market.guess.service.mechanism.LmsrTradingMechanism; -- cgit v1.2.3