Price change event.
Summary
Functions
Builds a PriceChangeEvent from a decoded (atom-keyed) websocket message.
Types
@type t() :: %Polymarket.Schemas.PriceChangeEvent{ event_type: String.t() | nil, market: String.t() | nil, price_changes: [Polymarket.Schemas.PriceChange.t()], timestamp: integer() | nil }
Functions
Builds a PriceChangeEvent from a decoded (atom-keyed) websocket message.
Constructs the struct directly — no Ecto.Changeset — for the websocket hot
path. Numeric fields (delivered as JSON strings) are coerced via
Polymarket.Schemas.Coerce. Returns {:error, {:missing_fields, fields}} when
a required field is absent.