qbtrade/pkg/exchange/bitget/bitgetapi/v2/get_trade_fills.go

73 lines
2.4 KiB
Go
Raw Permalink Normal View History

2024-06-27 14:42:38 +00:00
package bitgetapi
import (
"time"
"github.com/c9s/requestgen"
"git.qtrade.icu/lychiyu/qbtrade/pkg/fixedpoint"
"git.qtrade.icu/lychiyu/qbtrade/pkg/types"
)
//go:generate -command GetRequest requestgen -method GET -responseType .APIResponse -responseDataField Data
//go:generate -command PostRequest requestgen -method POST -responseType .APIResponse -responseDataField Data
type TradeScope string
const (
TradeMaker TradeScope = "maker"
TradeTaker TradeScope = "taker"
)
type DiscountStatus string
const (
DiscountYes DiscountStatus = "yes"
DiscountNo DiscountStatus = "no"
)
type TradeFee struct {
// Discount or not
Deduction DiscountStatus `json:"deduction"`
// Transaction fee coin
FeeCoin string `json:"feeCoin"`
// Total transaction fee discount
TotalDeductionFee fixedpoint.Value `json:"totalDeductionFee"`
// Total transaction fee
TotalFee fixedpoint.Value `json:"totalFee"`
}
type Trade struct {
UserId types.StrInt64 `json:"userId"`
Symbol string `json:"symbol"`
OrderId types.StrInt64 `json:"orderId"`
TradeId types.StrInt64 `json:"tradeId"`
OrderType OrderType `json:"orderType"`
Side SideType `json:"side"`
PriceAvg fixedpoint.Value `json:"priceAvg"`
Size fixedpoint.Value `json:"size"`
Amount fixedpoint.Value `json:"amount"`
FeeDetail TradeFee `json:"feeDetail"`
TradeScope TradeScope `json:"tradeScope"`
CreatedTime types.MillisecondTimestamp `json:"cTime"`
UpdatedTime types.MillisecondTimestamp `json:"uTime"`
}
//go:generate GetRequest -url "/api/v2/spot/trade/fills" -type GetTradeFillsRequest -responseDataType []Trade
type GetTradeFillsRequest struct {
client requestgen.AuthenticatedAPIClient
symbol string `param:"symbol,query"`
// Limit number default 100 max 100
limit *string `param:"limit,query"`
// idLessThan requests the content on the page before this ID (older data), the value input should be the orderId of the corresponding interface.
idLessThan *string `param:"idLessThan,query"`
startTime *time.Time `param:"startTime,milliseconds,query"`
endTime *time.Time `param:"endTime,milliseconds,query"`
orderId *string `param:"orderId,query"`
}
func (s *Client) NewGetTradeFillsRequest() *GetTradeFillsRequest {
return &GetTradeFillsRequest{client: s.Client}
}