From 5bc7c4ed9d052668af66d3116a6b7afbe62c6eec Mon Sep 17 00:00:00 2001 From: Kostya Date: Sun, 6 Sep 2026 12:22:58 +0300 Subject: api: extend contexts and DTOs for order books and event creation The desktop UI needs to create events, trade on both sides of an order book, and show who is participating in an event, none of which the api module could express so far. Add AccountContext for looking up ledger accounts by owner, and give CatalogContext an openEvent operation plus createEvent, taking either a CreateEventRequest or its fields spelled out. createEvent defaults to a "Not implemented" error so existing implementations keep compiling until they support it. Let GuessMarketContext.placeOrder take an explicit side, keeping the old signature as a default method that places a BUY so current callers are unaffected. Add OrderBookDTO and BookOrderDTO to describe per-option books with best bid, best ask and spread, and ParticipantDTO for a user's position, fees and P&L in an event. Carry the order books and participants on EventDetailDTO and the market maker's name on EventSummaryDTO. --- .../market/guess/model/event/CreateEventRequest.java | 16 ++++++++++++++++ .../java/market/guess/model/event/EventDetailDTO.java | 5 ++++- .../java/market/guess/model/event/EventSummaryDTO.java | 3 ++- .../java/market/guess/model/event/ParticipantDTO.java | 10 ++++++++++ 4 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 api/src/main/java/market/guess/model/event/CreateEventRequest.java create mode 100644 api/src/main/java/market/guess/model/event/ParticipantDTO.java (limited to 'api/src/main/java/market/guess/model/event') diff --git a/api/src/main/java/market/guess/model/event/CreateEventRequest.java b/api/src/main/java/market/guess/model/event/CreateEventRequest.java new file mode 100644 index 0000000..bac4cad --- /dev/null +++ b/api/src/main/java/market/guess/model/event/CreateEventRequest.java @@ -0,0 +1,16 @@ +package market.guess.model.event; + +import java.math.BigDecimal; +import java.util.List; + +public record CreateEventRequest( + String name, + String description, + MechanismType mechanism, + int commissionPercent, + CommissionTiming commissionTiming, + String mmUserName, + Integer liquidityB, + BigDecimal baseValueD, + List options, + boolean allowMinting) {} diff --git a/api/src/main/java/market/guess/model/event/EventDetailDTO.java b/api/src/main/java/market/guess/model/event/EventDetailDTO.java index f5c4edf..1d2e415 100644 --- a/api/src/main/java/market/guess/model/event/EventDetailDTO.java +++ b/api/src/main/java/market/guess/model/event/EventDetailDTO.java @@ -2,10 +2,13 @@ package market.guess.model.event; import java.util.List; import market.guess.model.market.MarketStateDTO; +import market.guess.model.market.OrderBookDTO; import market.guess.model.market.TradeRowDTO; public record EventDetailDTO( EventSummaryDTO summary, MarketStateDTO state, List history, - String settledMarket) {} + String settledMarket, + List orderBooks, + List participants) {} diff --git a/api/src/main/java/market/guess/model/event/EventSummaryDTO.java b/api/src/main/java/market/guess/model/event/EventSummaryDTO.java index 42762c2..d62b7b3 100644 --- a/api/src/main/java/market/guess/model/event/EventSummaryDTO.java +++ b/api/src/main/java/market/guess/model/event/EventSummaryDTO.java @@ -12,4 +12,5 @@ public record EventSummaryDTO( MechanismType mechanism, EventStatus status, List optionNames, - String accountBalance) {} + String accountBalance, + String marketMaker) {} diff --git a/api/src/main/java/market/guess/model/event/ParticipantDTO.java b/api/src/main/java/market/guess/model/event/ParticipantDTO.java new file mode 100644 index 0000000..3b15c89 --- /dev/null +++ b/api/src/main/java/market/guess/model/event/ParticipantDTO.java @@ -0,0 +1,10 @@ +package market.guess.model.event; + +public record ParticipantDTO( + String user, + String tag, + int yes, + int no, + String value, + String fees, + String pnl) {} -- cgit v1.2.3