diff options
| author | Kostya <mail@sartin.in> | 2026-08-17 11:15:59 +0000 |
|---|---|---|
| committer | Kostya <mail@sartin.in> | 2026-08-17 11:15:59 +0000 |
| commit | 13a221ffaefc169d028c7eab6f21ac88052d1d40 (patch) | |
| tree | 51e4fd676ba043de73e967b854be683c5836ef24 /api/src/main | |
| parent | eed9265be711432f40247f149c07f9e33511192a (diff) | |
| download | guess-market-13a221ffaefc169d028c7eab6f21ac88052d1d40.tar.gz guess-market-13a221ffaefc169d028c7eab6f21ac88052d1d40.tar.xz guess-market-13a221ffaefc169d028c7eab6f21ac88052d1d40.zip | |
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.
Diffstat (limited to 'api/src/main')
5 files changed, 8 insertions, 10 deletions
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; | |||
| 6 | import market.guess.model.event.EventSummaryDTO; | 6 | import market.guess.model.event.EventSummaryDTO; |
| 7 | 7 | ||
| 8 | public interface CatalogContext { | 8 | public interface CatalogContext { |
| 9 | Result<LoadResultDTO> loadEvents(Path path); | 9 | Result<LoadResult> loadEvents(Path path); |
| 10 | 10 | ||
| 11 | Result<List<EventSummaryDTO>> getAllEvents(); | 11 | Result<List<EventSummaryDTO>> getAllEvents(); |
| 12 | 12 | ||
| @@ -14,5 +14,5 @@ public interface CatalogContext { | |||
| 14 | 14 | ||
| 15 | Result<Void> saveState(Path path); | 15 | Result<Void> saveState(Path path); |
| 16 | 16 | ||
| 17 | Result<LoadResultDTO> restoreState(Path path); | 17 | Result<LoadResult> restoreState(Path path); |
| 18 | } | 18 | } |
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 @@ | |||
| 1 | package market.guess.api; | 1 | package market.guess.api; |
| 2 | 2 | ||
| 3 | import java.math.BigDecimal; | ||
| 3 | import market.guess.model.event.EventDetailDTO; | 4 | import market.guess.model.event.EventDetailDTO; |
| 4 | 5 | ||
| 5 | public interface GuessMarketContext { | 6 | public interface GuessMarketContext { |
| 6 | Result<PurchaseReceiptDTO> buyShares( | 7 | Result<PurchaseReceiptDTO> placeOrder( |
| 7 | String userName, String eventKey, String optionKey, int quantity); | 8 | String userName, String eventKey, String optionKey, BigDecimal price, long quantity); |
| 8 | 9 | ||
| 9 | Result<EventDetailDTO> settleEvent(String userName, String eventKey, String winningOptionKey); | 10 | Result<EventDetailDTO> settleEvent(String userName, String eventKey, String winningOptionKey); |
| 10 | } | 11 | } |
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 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | 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 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | 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 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | public record ProblemDTO(String code, String humanizedMessage, String location) {} | ||