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)]
27 pub available_qty: Option<i64>,
28 #[serde(default)]
29 pub collateral_qty: Option<i64>,
30 #[serde(default)]
31 pub avg_cost_price: Option<f64>,
32}
33
34#[derive(Debug, Clone, Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub struct Position {
42 pub dhan_client_id: Option<String>,
43 pub trading_symbol: Option<String>,
44 pub security_id: Option<String>,
45 pub position_type: Option<String>,
46 pub exchange_segment: Option<String>,
47 pub product_type: Option<String>,
48 #[serde(default)]
49 pub buy_avg: Option<f64>,
50 #[serde(default)]
51 pub buy_qty: Option<i64>,
52 #[serde(default)]
53 pub cost_price: Option<f64>,
54 #[serde(default)]
55 pub sell_avg: Option<f64>,
56 #[serde(default)]
57 pub sell_qty: Option<i64>,
58 #[serde(default)]
59 pub net_qty: Option<i64>,
60 #[serde(default)]
61 pub realized_profit: Option<f64>,
62 #[serde(default)]
63 pub unrealized_profit: Option<f64>,
64 #[serde(default)]
65 pub rbi_reference_rate: Option<f64>,
66 #[serde(default)]
67 pub multiplier: Option<i64>,
68 #[serde(default)]
69 pub carry_forward_buy_qty: Option<i64>,
70 #[serde(default)]
71 pub carry_forward_sell_qty: Option<i64>,
72 #[serde(default)]
73 pub carry_forward_buy_value: Option<f64>,
74 #[serde(default)]
75 pub carry_forward_sell_value: Option<f64>,
76 #[serde(default)]
77 pub day_buy_qty: Option<i64>,
78 #[serde(default)]
79 pub day_sell_qty: Option<i64>,
80 #[serde(default)]
81 pub day_buy_value: Option<f64>,
82 #[serde(default)]
83 pub day_sell_value: Option<f64>,
84 pub drv_expiry_date: Option<String>,
85 pub drv_option_type: Option<String>,
86 #[serde(default)]
87 pub drv_strike_price: Option<f64>,
88 #[serde(default)]
89 pub cross_currency: Option<bool>,
90}
91
92#[derive(Debug, Clone, Serialize)]
100#[serde(rename_all = "camelCase")]
101pub struct ConvertPositionRequest {
102 pub dhan_client_id: String,
103 pub from_product_type: ProductType,
104 pub exchange_segment: ExchangeSegment,
105 pub position_type: PositionType,
106 pub security_id: String,
107 #[serde(skip_serializing_if = "Option::is_none")]
108 pub trading_symbol: Option<String>,
109 pub convert_qty: u64,
110 pub to_product_type: ProductType,
111}
112
113#[derive(Debug, Clone, Deserialize)]
119pub struct ExitAllResponse {
120 pub status: String,
121 pub message: String,
122}