Skip to main content

bybit_api/models/
fmart_bot.rs

1use serde::{Deserialize, Serialize};
2
3// NOTE: Bybit V5 endpoints universally use camelCase on the wire (e.g.
4// `orderId`, `accountType`). The container-level `rename_all = "camelCase"`
5// attribute drives wire serialization here. The previous version of this
6// file also had per-field `#[serde(rename = "snake_case")]` attributes
7// which silently *overrode* the container, sending snake_case keys —
8// inconsistent with the rest of the V5 SDK. They have been removed.
9
10/// Response payload for `POST /v5/fmartingalebot/create`.
11#[derive(Debug, Clone, Serialize, Deserialize)]
12#[serde(rename_all = "camelCase")]
13pub struct CreateFMartBotResponse {
14    #[serde(default)]
15    pub status_code: Option<i32>,
16    #[serde(default)]
17    pub debug_msg: Option<String>,
18    #[serde(default)]
19    pub ban_reason_text: Option<String>,
20    #[serde(default)]
21    pub bot_id: Option<i64>,
22}
23
24/// Request body for `POST /v5/fmartingalebot/create`.
25#[derive(Debug, Clone, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct CreateFMartBotParams {
28    pub symbol: String,
29    pub martingale_mode: String,
30    pub leverage: String,
31    pub price_float_percent: String,
32    pub add_position_percent: String,
33    pub add_position_num: i32,
34    pub init_margin: String,
35    pub round_tp_percent: String,
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub auto_cycle_toggle: Option<String>,
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub sl_percent: Option<String>,
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub entry_price: Option<String>,
42    #[serde(skip_serializing_if = "Option::is_none")]
43    pub source: Option<String>,
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub followed_bot_id: Option<i64>,
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub block_source: Option<String>,
48    #[serde(skip_serializing_if = "Option::is_none")]
49    pub create_type: Option<String>,
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub init_bonus: Option<String>,
52    #[serde(skip_serializing_if = "Option::is_none")]
53    pub channel: Option<String>,
54}