use crate::indexer::types::*;
use chrono::{DateTime, Utc};
use serde::Serialize;
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ListPerpetualMarketsOpts {
pub limit: Option<u32>,
pub ticker: Option<Ticker>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTradesOpts {
pub limit: Option<u32>,
pub created_before_or_at_height: Option<Height>,
pub created_before_or_at: Option<DateTime<Utc>>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetCandlesOpts {
pub limit: Option<u32>,
#[serde(rename = "fromISO")]
pub from_iso: Option<DateTime<Utc>>,
#[serde(rename = "toISO")]
pub to_iso: Option<DateTime<Utc>>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistoricalFundingOpts {
pub limit: Option<u32>,
pub effective_before_or_at_height: Option<Height>,
pub effective_before_or_at: Option<DateTime<Utc>>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ListPositionsOpts {
pub status: Option<PerpetualPositionStatus>,
pub limit: Option<u32>,
pub created_before_or_at_height: Option<Height>,
pub created_before_or_at: Option<DateTime<Utc>>,
}
#[derive(Serialize, Default, Clone)]
#[serde(rename_all = "camelCase")]
pub struct GetTransfersOpts {
pub limit: Option<u32>,
pub page: Option<u32>,
pub created_before_or_at_height: Option<Height>,
pub created_before_or_at: Option<DateTime<Utc>>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetFundingPaymentsOpts {
pub limit: Option<u32>,
pub ticker: Option<Ticker>,
pub after_or_at: Option<DateTime<Utc>>,
pub page: Option<u32>,
pub zero_payments: Option<bool>,
}
pub type GetTransfersBetweenOpts = GetTransfersOpts;
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ListOrdersOpts {
pub limit: Option<u32>,
pub ticker: Option<Ticker>,
pub side: Option<OrderSide>,
pub status: Option<OrderStatus>,
#[serde(rename = "type")]
pub order_type: Option<OrderType>,
pub good_til_block_before_or_at: Option<Height>,
pub good_til_block_time_before_or_at: Option<DateTime<Utc>>,
pub return_latest_orders: Option<bool>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetFillsOpts {
pub limit: Option<u32>,
pub created_before_or_at_height: Option<Height>,
pub created_before_or_at: Option<DateTime<Utc>>,
pub market: Option<Ticker>,
pub market_type: Option<MarketType>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistoricalPnlOpts {
pub limit: Option<u32>,
pub created_before_or_at_height: Option<Height>,
pub created_before_or_at: Option<DateTime<Utc>>,
pub created_on_or_after_height: Option<Height>,
pub created_on_or_after: Option<DateTime<Utc>>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTradingRewardsOpts {
pub limit: Option<u32>,
pub starting_before_or_at_height: Option<Height>,
pub starting_before_or_at: Option<DateTime<Utc>>,
}
#[derive(Serialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetAggregationsOpts {
pub limit: Option<u32>,
pub starting_before_or_at_height: Option<Height>,
pub starting_before_or_at: Option<DateTime<Utc>>,
}