diff options
| author | Kostya <mail@sartin.in> | 2026-08-13 16:24:24 +0000 |
|---|---|---|
| committer | Kostya <mail@sartin.in> | 2026-08-13 16:24:24 +0000 |
| commit | ae8486da5c542d6af9a2e0f9f7cc39729a055eee (patch) | |
| tree | 2b8294ca875290bfbb6d4c32bfffa7d7373e7374 /api/src | |
| parent | 40fa8c52d2afc87c76b2d38566e9920120b2da3c (diff) | |
| download | guess-market-ae8486da5c542d6af9a2e0f9f7cc39729a055eee.tar.gz guess-market-ae8486da5c542d6af9a2e0f9f7cc39729a055eee.tar.xz guess-market-ae8486da5c542d6af9a2e0f9f7cc39729a055eee.zip | |
Add service module with stubbed LocalGuessMarketContext
GuessMarketContext gained a richer surface (loadEvents/listEvents/
buyShares/closeEvent/account/save-restoreState) backed by new
EventDetailDTO, MarketStateDTO, OptionStateDTO and PurchaseReceiptDTO.
The old engine-module provider implemented the previous shape and is
removed; market.guess.service.LocalGuessMarketContext replaces it as a
stub, each method throwing UnsupportedOperationException pending a
real implementation.
Diffstat (limited to 'api/src')
5 files changed, 48 insertions, 6 deletions
diff --git a/api/src/main/java/market/guess/api/EventDetailDTO.java b/api/src/main/java/market/guess/api/EventDetailDTO.java new file mode 100644 index 0000000..893f153 --- /dev/null +++ b/api/src/main/java/market/guess/api/EventDetailDTO.java | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | import java.util.List; | ||
| 4 | |||
| 5 | public record EventDetailDTO( | ||
| 6 | EventSummaryDTO summary, | ||
| 7 | MarketStateDTO state, | ||
| 8 | List<TradeRowDTO> history, | ||
| 9 | String winningOption) {} | ||
diff --git a/api/src/main/java/market/guess/api/GuessMarketContext.java b/api/src/main/java/market/guess/api/GuessMarketContext.java index d3954cd..f010e1c 100644 --- a/api/src/main/java/market/guess/api/GuessMarketContext.java +++ b/api/src/main/java/market/guess/api/GuessMarketContext.java | |||
| @@ -1,17 +1,27 @@ | |||
| 1 | package market.guess.api; | 1 | package market.guess.api; |
| 2 | 2 | ||
| 3 | import java.nio.file.Path; | ||
| 3 | import java.util.List; | 4 | import java.util.List; |
| 5 | import market.guess.exception.GuessMarketException; | ||
| 4 | 6 | ||
| 5 | public interface GuessMarketContext { | 7 | public interface GuessMarketContext { |
| 6 | LoadResultDTO LoadAsync(); | 8 | LoadResultDTO loadEvents(Path path); |
| 7 | 9 | ||
| 8 | void SaveChangesAsync(); | 10 | List<EventSummaryDTO> listEvents(); |
| 9 | 11 | ||
| 10 | List<EventSummaryDTO> GetAllEventsAsync(); | 12 | boolean isLoaded(); |
| 11 | 13 | ||
| 12 | void GetEventInfoByIdAsync(); | 14 | EventDetailDTO getEvent(String eventKey); |
| 13 | 15 | ||
| 14 | void CreateEventAsync(); | 16 | PurchaseReceiptDTO buyShares(String userName, String eventKey, String optionKey, long quantity) |
| 17 | throws GuessMarketException; | ||
| 15 | 18 | ||
| 16 | void UpdateEventAsync(); | 19 | EventDetailDTO closeEvent(String userName, String eventKey, String winningOptionKey) |
| 20 | throws GuessMarketException; | ||
| 21 | |||
| 22 | AccountDTO account(String userName); | ||
| 23 | |||
| 24 | void saveState(Path path) throws GuessMarketException; | ||
| 25 | |||
| 26 | LoadResultDTO restoreState(Path path); | ||
| 17 | } | 27 | } |
diff --git a/api/src/main/java/market/guess/api/MarketStateDTO.java b/api/src/main/java/market/guess/api/MarketStateDTO.java new file mode 100644 index 0000000..f49b2aa --- /dev/null +++ b/api/src/main/java/market/guess/api/MarketStateDTO.java | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | import java.util.List; | ||
| 4 | |||
| 5 | public record MarketStateDTO( | ||
| 6 | String eventKey, | ||
| 7 | MechanismType mechanism, | ||
| 8 | List<OptionStateDTO> options, | ||
| 9 | String accountBalance, | ||
| 10 | String commissionCollected) {} | ||
diff --git a/api/src/main/java/market/guess/api/OptionStateDTO.java b/api/src/main/java/market/guess/api/OptionStateDTO.java new file mode 100644 index 0000000..c002fdd --- /dev/null +++ b/api/src/main/java/market/guess/api/OptionStateDTO.java | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | public record OptionStateDTO(String optionKey, String name, String price, long sharesOutstanding) {} | ||
diff --git a/api/src/main/java/market/guess/api/PurchaseReceiptDTO.java b/api/src/main/java/market/guess/api/PurchaseReceiptDTO.java new file mode 100644 index 0000000..bd5b2f7 --- /dev/null +++ b/api/src/main/java/market/guess/api/PurchaseReceiptDTO.java | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | package market.guess.api; | ||
| 2 | |||
| 3 | public record PurchaseReceiptDTO( | ||
| 4 | String eventKey, | ||
| 5 | String optionName, | ||
| 6 | long quantity, | ||
| 7 | String sharesCost, | ||
| 8 | String commission, | ||
| 9 | String totalPaid, | ||
| 10 | MarketStateDTO stateAfter) {} | ||