summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorKostya <mail@sartin.in>2026-08-17 11:15:59 +0000
committerKostya <mail@sartin.in>2026-08-17 11:15:59 +0000
commit13a221ffaefc169d028c7eab6f21ac88052d1d40 (patch)
tree51e4fd676ba043de73e967b854be683c5836ef24 /api
parenteed9265be711432f40247f149c07f9e33511192a (diff)
downloadguess-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')
-rw-r--r--api/src/main/java/market/guess/api/CatalogContext.java4
-rw-r--r--api/src/main/java/market/guess/api/GuessMarketContext.java5
-rw-r--r--api/src/main/java/market/guess/api/LoadResult.java3
-rw-r--r--api/src/main/java/market/guess/api/LoadResultDTO.java3
-rw-r--r--api/src/main/java/market/guess/api/ProblemDTO.java3
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;
6import market.guess.model.event.EventSummaryDTO; 6import market.guess.model.event.EventSummaryDTO;
7 7
8public interface CatalogContext { 8public 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 @@
1package market.guess.api; 1package market.guess.api;
2 2
3import java.math.BigDecimal;
3import market.guess.model.event.EventDetailDTO; 4import market.guess.model.event.EventDetailDTO;
4 5
5public interface GuessMarketContext { 6public 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 @@
1package market.guess.api;
2
3public 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 @@
1package market.guess.api;
2
3public 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 @@
1package market.guess.api;
2
3public record ProblemDTO(String code, String humanizedMessage, String location) {}