dhan_rs/types/
portfolio.rs1#![allow(missing_docs)]
2use serde::{Deserialize, Serialize};
5
6use crate::types::enums::*;
7
8#[derive(Debug, Clone, Deserialize)]
14#[serde(rename_all = "camelCase")]
15pub struct Holding {
16 pub exchange: Option<String>,
17 pub trading_symbol: Option<String>,
18 pub security_id: Option<String>,
19 pub isin: Option<String>,
20 #[serde(default)]
21 pub total_qty: Option<i64>,
22 #[serde(default)]
23 pub dp_qty: Option<i64>,
24 #[serde(default)]
25 pub t1_qty: Option<i64>,
26 #[serde(default, rename = "mtf_t1_qty", alias = "mtfT1Qty")]
27 pub mtf_t1_qty: Option<i64>,
28 #[serde(default, rename = "mtf_qty", alias = "mtfQty")]
29 pub mtf_qty: Option<i64>,
30 #[serde(default)]
31 pub available_qty: Option<i64>,
32 #[serde(default)]
33 pub collateral_qty: Option<i64>,
34 #[serde(default)]
35 pub avg_cost_price: Option<f64>,
36 #[serde(default)]
37 pub last_traded_price: Option<f64>,
38}
39
40#[derive(Debug, Clone, Deserialize)]
46#[serde(rename_all = "camelCase")]
47pub struct Position {
48 pub dhan_client_id: Option<String>,
49 pub trading_symbol: Option<String>,
50 pub security_id: Option<String>,
51 pub position_type: Option<String>,
52 pub exchange_segment: Option<String>,
53 pub product_type: Option<String>,
54 #[serde(default)]
55 pub buy_avg: Option<f64>,
56 #[serde(default)]
57 pub buy_qty: Option<i64>,
58 #[serde(default)]
59 pub cost_price: Option<f64>,
60 #[serde(default)]
61 pub sell_avg: Option<f64>,
62 #[serde(default)]
63 pub sell_qty: Option<i64>,
64 #[serde(default)]
65 pub net_qty: Option<i64>,
66 #[serde(default)]
67 pub realized_profit: Option<f64>,
68 #[serde(default)]
69 pub unrealized_profit: Option<f64>,
70 #[serde(default)]
71 pub rbi_reference_rate: Option<f64>,
72 #[serde(default)]
73 pub multiplier: Option<i64>,
74 #[serde(default)]
75 pub carry_forward_buy_qty: Option<i64>,
76 #[serde(default)]
77 pub carry_forward_sell_qty: Option<i64>,
78 #[serde(default)]
79 pub carry_forward_buy_value: Option<f64>,
80 #[serde(default)]
81 pub carry_forward_sell_value: Option<f64>,
82 #[serde(default)]
83 pub day_buy_qty: Option<i64>,
84 #[serde(default)]
85 pub day_sell_qty: Option<i64>,
86 #[serde(default)]
87 pub day_buy_value: Option<f64>,
88 #[serde(default)]
89 pub day_sell_value: Option<f64>,
90 pub drv_expiry_date: Option<String>,
91 pub drv_option_type: Option<String>,
92 #[serde(default)]
93 pub drv_strike_price: Option<f64>,
94 #[serde(default)]
95 pub cross_currency: Option<bool>,
96}
97
98#[derive(Debug, Clone, Serialize)]
106#[serde(rename_all = "camelCase")]
107pub struct ConvertPositionRequest {
108 pub dhan_client_id: String,
109 pub from_product_type: ProductType,
110 pub exchange_segment: ExchangeSegment,
111 pub position_type: PositionType,
112 pub security_id: String,
113 #[serde(skip_serializing_if = "Option::is_none")]
114 pub trading_symbol: Option<String>,
115 pub convert_qty: u64,
116 pub to_product_type: ProductType,
117}
118
119#[derive(Debug, Clone, Deserialize)]
125pub struct ExitAllResponse {
126 pub status: String,
127 pub message: String,
128}