From 13a221ffaefc169d028c7eab6f21ac88052d1d40 Mon Sep 17 00:00:00 2001 From: Kostya Date: Mon, 17 Aug 2026 11:15:59 +0000 Subject: Replace order matching with risk/matching/fulfillment/settlement pipeline Move XML loading infrastructure and models under service/catalog, and split order execution into a real pipeline: RiskEngine checks the order, MatchingEngine matches it, FulfillmentContext books the resulting trades, and SettlementContext resolves winning markets. GuessMarketContext.buyShares becomes placeOrder(price, quantity), and TradingMechanism.buy now returns matched trades directly instead of a single TradeExecution. --- api/src/main/java/market/guess/api/CatalogContext.java | 4 ++-- api/src/main/java/market/guess/api/GuessMarketContext.java | 5 +++-- api/src/main/java/market/guess/api/LoadResult.java | 3 +++ api/src/main/java/market/guess/api/LoadResultDTO.java | 3 --- api/src/main/java/market/guess/api/ProblemDTO.java | 3 --- 5 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 api/src/main/java/market/guess/api/LoadResult.java delete mode 100644 api/src/main/java/market/guess/api/LoadResultDTO.java delete mode 100644 api/src/main/java/market/guess/api/ProblemDTO.java (limited to 'api/src/main') diff --git a/api/src/main/java/market/guess/api/CatalogContext.java b/api/src/main/java/market/guess/api/CatalogContext.java index c980ba8..413a81c 100644 --- a/api/src/main/java/market/guess/api/CatalogContext.java +++ b/api/src/main/java/market/guess/api/CatalogContext.java @@ -6,7 +6,7 @@ import market.guess.model.event.EventDetailDTO; import market.guess.model.event.EventSummaryDTO; public interface CatalogContext { - Result loadEvents(Path path); + Result loadEvents(Path path); Result> getAllEvents(); @@ -14,5 +14,5 @@ public interface CatalogContext { Result saveState(Path path); - Result restoreState(Path path); + Result restoreState(Path path); } diff --git a/api/src/main/java/market/guess/api/GuessMarketContext.java b/api/src/main/java/market/guess/api/GuessMarketContext.java index 7ec7323..e11defb 100644 --- a/api/src/main/java/market/guess/api/GuessMarketContext.java +++ b/api/src/main/java/market/guess/api/GuessMarketContext.java @@ -1,10 +1,11 @@ package market.guess.api; +import java.math.BigDecimal; import market.guess.model.event.EventDetailDTO; public interface GuessMarketContext { - Result buyShares( - String userName, String eventKey, String optionKey, int quantity); + Result placeOrder( + String userName, String eventKey, String optionKey, BigDecimal price, long quantity); Result settleEvent(String userName, String eventKey, String winningOptionKey); } diff --git a/api/src/main/java/market/guess/api/LoadResult.java b/api/src/main/java/market/guess/api/LoadResult.java new file mode 100644 index 0000000..6ffe68d --- /dev/null +++ b/api/src/main/java/market/guess/api/LoadResult.java @@ -0,0 +1,3 @@ +package market.guess.api; + +public record LoadResult(String source, int eventsLoaded) {} diff --git a/api/src/main/java/market/guess/api/LoadResultDTO.java b/api/src/main/java/market/guess/api/LoadResultDTO.java deleted file mode 100644 index 95c23e7..0000000 --- a/api/src/main/java/market/guess/api/LoadResultDTO.java +++ /dev/null @@ -1,3 +0,0 @@ -package market.guess.api; - -public record LoadResultDTO(String source, int eventsLoaded) {} diff --git a/api/src/main/java/market/guess/api/ProblemDTO.java b/api/src/main/java/market/guess/api/ProblemDTO.java deleted file mode 100644 index 682372b..0000000 --- a/api/src/main/java/market/guess/api/ProblemDTO.java +++ /dev/null @@ -1,3 +0,0 @@ -package market.guess.api; - -public record ProblemDTO(String code, String humanizedMessage, String location) {} -- cgit v1.2.3