(ns ird.credits
"Credit balance, ledger history and current usage prices."
(:require
[ird.transport :as transport]))
(defn balance
"GET /credits/balance — Credit balance.
Returns the parsed response map."
[client]
(transport/request client :get "/credits/balance"))
(defn ledger
"GET /credits/ledger — Credit ledger history.
Optional QUERY keys include :limit, :cursor, :type, :kind, :contract, :day.
Returns the parsed response map."
([client] (ledger client nil))
([client query]
(transport/request client :get "/credits/ledger" {:query query})))
(defn ledger-all
"List all ledger entries under :entries by following cursor pagination.
QUERY may include filters; :cursor is managed automatically."
([client] (ledger-all client nil))
([client query]
(transport/paginate client :get "/credits/ledger" :entries query)))
(defn prices
"GET /credits/prices — Current usage prices.
Returns the parsed response map."
[client]
(transport/request client :get "/credits/prices"))