Response shape for GET /schedules/campaigns/{id}/raised.
raised and currency are null when the window spans multiple
currencies — read byCurrency in that case. asOf is the
server-side timestamp captured immediately before the SQL
aggregation; every donation delivered over the WebSocket firehose
with completed_at <= asOf is already reflected in raised, so
only strictly-later events are pure delta.
Consumers combining with a WebSocket delta (see
usePipelineDonationSum in @playlive/react-pipeline) should pass
asOf as the delta's start and the block's ends_at as the
delta's end — same window semantics on both halves.
Response shape for
GET /schedules/campaigns/{id}/raised.raisedandcurrencyarenullwhen the window spans multiple currencies — readbyCurrencyin that case.asOfis the server-side timestamp captured immediately before the SQL aggregation; every donation delivered over the WebSocket firehose withcompleted_at <= asOfis already reflected inraised, so only strictly-later events are pure delta.Consumers combining with a WebSocket delta (see
usePipelineDonationSumin@playlive/react-pipeline) should passasOfas the delta'sstartand the block'sends_atas the delta'send— same window semantics on both halves.