aboutsummaryrefslogtreecommitdiffstats
path: root/api/src/main/java/market
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/main/java/market')
-rw-r--r--api/src/main/java/market/guess/api/EventDetailDTO.java9
-rw-r--r--api/src/main/java/market/guess/api/GuessMarketContext.java22
-rw-r--r--api/src/main/java/market/guess/api/MarketStateDTO.java10
-rw-r--r--api/src/main/java/market/guess/api/OptionStateDTO.java3
-rw-r--r--api/src/main/java/market/guess/api/PurchaseReceiptDTO.java10
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 @@
1package market.guess.api;
2
3import java.util.List;
4
5public 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 @@
1package market.guess.api; 1package market.guess.api;
2 2
3import java.nio.file.Path;
3import java.util.List; 4import java.util.List;
5import market.guess.exception.GuessMarketException;
4 6
5public interface GuessMarketContext { 7public 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 @@
1package market.guess.api;
2
3import java.util.List;
4
5public 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 @@
1package market.guess.api;
2
3public 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 @@
1package market.guess.api;
2
3public record PurchaseReceiptDTO(
4 String eventKey,
5 String optionName,
6 long quantity,
7 String sharesCost,
8 String commission,
9 String totalPaid,
10 MarketStateDTO stateAfter) {}