use serde::Deserialize;
use crate::{
NumberString,
model::{OrderSide, OrderState, OrderType, PositionSide, RestRow, TradeMode},
};
pub type AlgoOrderResult = RestRow;
pub type AlgoOrder = RestRow;
pub type EasyConvertCurrency = RestRow;
pub type EasyConvertResult = RestRow;
pub type EasyConvertHistory = RestRow;
pub type OneClickRepayCurrency = RestRow;
pub type OneClickRepayResult = RestRow;
pub type OneClickRepayHistory = RestRow;
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct PlaceOrderResult {
#[serde(default)]
pub ord_id: String,
#[serde(default)]
pub cl_ord_id: String,
#[serde(default)]
pub tag: String,
pub s_code: String,
#[serde(default)]
pub s_msg: String,
#[serde(default)]
pub ts: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct CancelOrderResult {
#[serde(default)]
pub ord_id: String,
#[serde(default)]
pub cl_ord_id: String,
pub s_code: String,
#[serde(default)]
pub s_msg: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct AmendOrderResult {
#[serde(default)]
pub ord_id: String,
#[serde(default)]
pub cl_ord_id: String,
#[serde(default)]
pub req_id: String,
pub s_code: String,
#[serde(default)]
pub s_msg: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct ClosePositionResult {
#[serde(default)]
pub inst_id: String,
#[serde(default)]
pub pos_side: String,
#[serde(default)]
pub cl_ord_id: String,
#[serde(default)]
pub tag: String,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct Order {
pub inst_id: String,
pub ord_id: String,
#[serde(default)]
pub cl_ord_id: String,
#[serde(default)]
pub px: NumberString,
#[serde(default)]
pub sz: NumberString,
pub ord_type: OrderType,
pub side: OrderSide,
pub pos_side: PositionSide,
pub td_mode: TradeMode,
#[serde(default)]
pub acc_fill_sz: NumberString,
#[serde(default)]
pub avg_px: NumberString,
pub state: OrderState,
#[serde(default)]
pub c_time: NumberString,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct Fill {
#[serde(default)]
pub inst_type: String,
pub inst_id: String,
#[serde(default)]
pub trade_id: String,
#[serde(default)]
pub ord_id: String,
#[serde(default)]
pub fill_px: NumberString,
#[serde(default)]
pub fill_sz: NumberString,
pub side: OrderSide,
pub ord_type: OrderType,
#[serde(default)]
pub fee_ccy: String,
#[serde(default)]
pub fee: NumberString,
#[serde(default)]
pub ts: NumberString,
}