1#[allow(clippy::derive_partial_eq_without_eq)]
5#[derive(Clone, PartialEq, ::prost::Message)]
6pub struct Fund {
7 #[prost(string, tag="1")]
9 pub code: ::prost::alloc::string::String,
10 #[prost(string, tag="2")]
12 pub name: ::prost::alloc::string::String,
13 #[prost(string, tag="3")]
15 pub category_code: ::prost::alloc::string::String,
16 #[prost(string, tag="4")]
18 pub employee_number: ::prost::alloc::string::String,
19 #[prost(string, tag="5")]
21 pub employee_name: ::prost::alloc::string::String,
22 #[prost(string, tag="6")]
24 pub limit_amount: ::prost::alloc::string::String,
25 #[prost(string, tag="7")]
27 pub department_code: ::prost::alloc::string::String,
28 #[prost(string, tag="8")]
30 pub trade_code: ::prost::alloc::string::String,
31 #[prost(string, tag="9")]
33 pub part_code: ::prost::alloc::string::String,
34 #[prost(string, tag="12")]
36 pub part_name: ::prost::alloc::string::String,
37 #[prost(string, tag="13")]
39 pub product_deal_code: ::prost::alloc::string::String,
40 #[prost(string, tag="14")]
42 pub add_up_position: ::prost::alloc::string::String,
43 #[prost(string, tag="15")]
45 pub trading_system_code: ::prost::alloc::string::String,
46 #[prost(string, tag="16")]
48 pub unique_trading_unit_code: ::prost::alloc::string::String,
49 #[prost(string, tag="17")]
51 pub unique_trading_unit_part_code: ::prost::alloc::string::String,
52 #[prost(int64, tag="18")]
54 pub unique_trading_unit_serial_number: i64,
55 #[prost(bool, tag="19")]
57 pub add_up_unique_trading_unit: bool,
58 #[prost(string, tag="20")]
60 pub short_selling_id: ::prost::alloc::string::String,
61}
62#[allow(clippy::derive_partial_eq_without_eq)]
63#[derive(Clone, PartialEq, ::prost::Message)]
64pub struct FundTrading {
65 #[prost(message, repeated, tag="1")]
67 pub fund_limits: ::prost::alloc::vec::Vec<FundLimit>,
68 #[prost(message, optional, tag="2")]
70 pub pnls: ::core::option::Option<FundPnL>,
71 #[prost(message, optional, tag="3")]
73 pub exposures: ::core::option::Option<FundExposure>,
74 #[prost(message, optional, tag="4")]
76 pub timestamp: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
77}
78#[allow(clippy::derive_partial_eq_without_eq)]
80#[derive(Clone, PartialEq, ::prost::Message)]
81pub struct FundPnL {
82 #[prost(int64, tag="1")]
84 pub daily_realized_pnl: i64,
85 #[prost(int64, tag="2")]
87 pub daily_unrealized_pnl: i64,
88 #[prost(message, repeated, tag="3")]
90 pub symbols: ::prost::alloc::vec::Vec<SymbolPnL>,
91}
92#[allow(clippy::derive_partial_eq_without_eq)]
94#[derive(Clone, PartialEq, ::prost::Message)]
95pub struct SymbolPnL {
96 #[prost(string, tag="1")]
98 pub symbol: ::prost::alloc::string::String,
99 #[prost(int64, tag="2")]
101 pub quantity: i64,
102 #[prost(double, tag="3")]
104 pub average_entry_price: f64,
105 #[prost(int64, tag="4")]
107 pub current_price: i64,
108 #[prost(int64, tag="5")]
110 pub unrealized_pnl: i64,
111 #[prost(int64, tag="6")]
113 pub realized_pnl: i64,
114 #[prost(int64, tag="7")]
116 pub trading_cost: i64,
117}
118#[allow(clippy::derive_partial_eq_without_eq)]
120#[derive(Clone, PartialEq, ::prost::Message)]
121pub struct FundExposure {
122 #[prost(int64, tag="1")]
124 pub total_exposure: i64,
125 #[prost(message, repeated, tag="2")]
127 pub symbols: ::prost::alloc::vec::Vec<SymbolExposure>,
128}
129#[allow(clippy::derive_partial_eq_without_eq)]
130#[derive(Clone, PartialEq, ::prost::Message)]
131pub struct SymbolExposure {
132 #[prost(string, tag="1")]
134 pub symbol: ::prost::alloc::string::String,
135 #[prost(int64, tag="2")]
137 pub quantity: i64,
138 #[prost(int64, tag="3")]
140 pub current_price: i64,
141 #[prost(int64, tag="4")]
143 pub exposure: i64,
144}
145#[allow(clippy::derive_partial_eq_without_eq)]
146#[derive(Clone, PartialEq, ::prost::Message)]
147pub struct FundLimit {
148 #[prost(string, tag="1")]
149 pub fund: ::prost::alloc::string::String,
150 #[prost(enumeration="FundLimitType", tag="2")]
152 pub limit_type: i32,
153 #[prost(int64, tag="3")]
155 pub long_limit_quantity: i64,
156 #[prost(int64, tag="4")]
158 pub long_limit_amount: i64,
159 #[prost(int64, tag="5")]
161 pub short_limit_quantity: i64,
162 #[prost(int64, tag="6")]
164 pub short_limit_amount: i64,
165 #[prost(int64, tag="7")]
167 pub limit_quantity_per_order: i64,
168 #[prost(int64, tag="8")]
170 pub limit_amount_per_order: i64,
171 #[prost(int64, tag="9")]
173 pub tick_limit: i64,
174 #[prost(int64, tag="10")]
176 pub unfilled_limit: i64,
177 #[prost(int64, tag="11")]
179 pub spread_limit_quantity_per_order: i64,
180 #[prost(int64, tag="12")]
182 pub current_long_quantity: i64,
183 #[prost(int64, tag="13")]
185 pub current_long_amount: i64,
186 #[prost(int64, tag="14")]
188 pub current_short_quantity: i64,
189 #[prost(int64, tag="15")]
191 pub current_short_amount: i64,
192 #[prost(int64, tag="16")]
194 pub current_unfilled: i64,
195}
196#[allow(clippy::derive_partial_eq_without_eq)]
197#[derive(Clone, PartialEq, ::prost::Message)]
198pub struct LossLimitAlert {
199 #[prost(string, tag="1")]
200 pub fund_code: ::prost::alloc::string::String,
201 #[prost(int64, tag="2")]
202 pub current_loss: i64,
203 #[prost(int64, tag="3")]
204 pub loss_limit: i64,
205 #[prost(message, optional, tag="4")]
206 pub timestamp: ::core::option::Option<super::super::super::google::protobuf::Timestamp>,
207 #[prost(map="string, message", tag="5")]
208 pub snapshots: ::std::collections::HashMap<::prost::alloc::string::String, LossLimitSnapshot>,
209}
210#[allow(clippy::derive_partial_eq_without_eq)]
211#[derive(Clone, PartialEq, ::prost::Message)]
212pub struct LossLimitSnapshot {
213 #[prost(string, tag="1")]
214 pub symbol: ::prost::alloc::string::String,
215 #[prost(int64, tag="2")]
216 pub quantity: i64,
217 #[prost(double, tag="3")]
218 pub average_price: f64,
219 #[prost(double, tag="4")]
220 pub current_price: f64,
221 #[prost(int64, tag="5")]
222 pub unrealized_pnl: i64,
223}
224#[allow(clippy::derive_partial_eq_without_eq)]
228#[derive(Clone, PartialEq, ::prost::Message)]
229pub struct GetFundRequest {
230 #[prost(string, tag="1")]
232 pub fund: ::prost::alloc::string::String,
233}
234#[allow(clippy::derive_partial_eq_without_eq)]
236#[derive(Clone, PartialEq, ::prost::Message)]
237pub struct ListFundsRequest {
238 #[prost(uint32, optional, tag="1")]
240 pub page_size: ::core::option::Option<u32>,
241 #[prost(string, optional, tag="2")]
243 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
244 #[prost(string, tag="3")]
254 pub filter: ::prost::alloc::string::String,
255}
256#[allow(clippy::derive_partial_eq_without_eq)]
258#[derive(Clone, PartialEq, ::prost::Message)]
259pub struct ListFundsResponse {
260 #[prost(message, repeated, tag="1")]
262 pub funds: ::prost::alloc::vec::Vec<Fund>,
263 #[prost(string, tag="2")]
265 pub next_page_token: ::prost::alloc::string::String,
266}
267#[allow(clippy::derive_partial_eq_without_eq)]
268#[derive(Clone, PartialEq, ::prost::Message)]
269pub struct ListFundTradingSnapshotsRequest {
270 #[prost(string, tag="1")]
272 pub fund: ::prost::alloc::string::String,
273 #[prost(string, tag="2")]
280 pub filter: ::prost::alloc::string::String,
281}
282#[allow(clippy::derive_partial_eq_without_eq)]
283#[derive(Clone, PartialEq, ::prost::Message)]
284pub struct ListFundTradingSnapshotsResponse {
285 #[prost(message, repeated, tag="1")]
287 pub snapshots: ::prost::alloc::vec::Vec<FundTrading>,
288 #[prost(string, tag="2")]
290 pub next_page_token: ::prost::alloc::string::String,
291}
292#[allow(clippy::derive_partial_eq_without_eq)]
293#[derive(Clone, PartialEq, ::prost::Message)]
294pub struct WatchLossLimitAlertsRequest {
295 #[prost(string, tag="1")]
297 pub fund: ::prost::alloc::string::String,
298}
299#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
300#[repr(i32)]
301pub enum FundLimitType {
302 FundLimitUnspecified = 0,
303 Kospi200Future = 1,
304 Stock = 2,
305}
306impl FundLimitType {
307 pub fn as_str_name(&self) -> &'static str {
312 match self {
313 FundLimitType::FundLimitUnspecified => "FUND_LIMIT_UNSPECIFIED",
314 FundLimitType::Kospi200Future => "KOSPI_200_Future",
315 FundLimitType::Stock => "STOCK",
316 }
317 }
318 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
320 match value {
321 "FUND_LIMIT_UNSPECIFIED" => Some(Self::FundLimitUnspecified),
322 "KOSPI_200_Future" => Some(Self::Kospi200Future),
323 "STOCK" => Some(Self::Stock),
324 _ => None,
325 }
326 }
327}
328include!("kdo.v1.fund.tonic.rs");
329include!("kdo.v1.fund.serde.rs");
330