htx_rs/model/
spot_trade.rs1use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
6pub enum OrderType {
7 BuyLimit,
8 SellLimit,
9 BuyMarket,
10 SellMarket,
11}
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
15pub enum OrderState {
16 Submitted,
17 PartialFilled,
18 PartialCanceled,
19 Filled,
20 Canceled,
21}
22
23#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct CreateOrderRequest {
26 pub account_id: String,
27 pub symbol: String,
28 pub order_type: OrderType,
29 pub source: String,
30 pub amount: f64,
31 pub price: Option<f64>,
32 pub client_order_id: Option<String>,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct CreateOrderResponse {
38 pub order_id: String,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
43pub struct OrderDetail {
44 pub order_id: String,
45 pub symbol: String,
46 pub account_id: String,
47 pub order_type: OrderType,
48 pub state: OrderState,
49 pub amount: f64,
50 pub price: Option<f64>,
51 pub filled_amount: Option<f64>,
52 pub created_at: Option<u64>,
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize)]
57pub struct CancelOrderRequest {
58 pub symbol: String,
59 pub order_id: String,
60}
61
62#[derive(Debug, Clone, Serialize, Deserialize)]
64pub struct CancelOrderResponse {
65 pub order_id: String,
66 pub status: String,
67}
68
69#[derive(Debug, Clone, Serialize, Deserialize)]
71pub struct GetOrderRequest {
72 pub order_id: String,
73}
74
75#[derive(Debug, Clone, Serialize, Deserialize)]
77pub struct GetOrderResponse {
78 pub detail: OrderDetail,
79}