1#[derive(serde::Serialize, serde::Deserialize)]
3#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
4pub struct PortfolioName {
5 #[prost(string, tag = "1")]
6 pub name: ::prost::alloc::string::String,
7}
8#[derive(serde::Serialize, serde::Deserialize)]
10#[derive(Clone, PartialEq, ::prost::Message)]
11pub struct ChangeView {
12 #[prost(string, tag = "1")]
13 pub from: ::prost::alloc::string::String,
14 #[prost(string, tag = "2")]
15 pub to: ::prost::alloc::string::String,
16 #[prost(double, tag = "3")]
17 pub absolute: f64,
18 #[prost(double, optional, tag = "4")]
19 pub percent: ::core::option::Option<f64>,
20}
21#[derive(serde::Serialize, serde::Deserialize)]
22#[derive(Clone, PartialEq, ::prost::Message)]
23pub struct HoldingView {
24 #[prost(string, tag = "1")]
25 pub instrument: ::prost::alloc::string::String,
26 #[prost(double, optional, tag = "2")]
29 pub quantity: ::core::option::Option<f64>,
30 #[prost(double, optional, tag = "3")]
31 pub price: ::core::option::Option<f64>,
32 #[prost(double, tag = "4")]
33 pub market_value: f64,
34 #[prost(double, optional, tag = "5")]
35 pub cost_basis: ::core::option::Option<f64>,
36 #[prost(double, optional, tag = "6")]
37 pub unrealized: ::core::option::Option<f64>,
38 #[prost(double, optional, tag = "7")]
39 pub unrealized_pct: ::core::option::Option<f64>,
40 #[prost(double, tag = "8")]
41 pub weight: f64,
42 #[prost(string, tag = "9")]
45 pub priced_by: ::prost::alloc::string::String,
46}
47#[derive(serde::Serialize, serde::Deserialize)]
48#[derive(Clone, PartialEq, ::prost::Message)]
49pub struct ImportView {
50 #[prost(message, repeated, tag = "1")]
52 pub columns: ::prost::alloc::vec::Vec<NamedText>,
53 #[prost(string, repeated, tag = "2")]
54 pub ignored: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
55 #[prost(uint32, tag = "3")]
56 pub rows_imported: u32,
57 #[prost(string, repeated, tag = "4")]
58 pub rows_skipped: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
59 #[prost(bool, tag = "5")]
61 pub cost_basis_derived: bool,
62}
63#[derive(serde::Serialize, serde::Deserialize)]
65#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
66pub struct NamedText {
67 #[prost(string, tag = "1")]
68 pub name: ::prost::alloc::string::String,
69 #[prost(string, tag = "2")]
70 pub value: ::prost::alloc::string::String,
71}
72#[derive(serde::Serialize, serde::Deserialize)]
73#[derive(Clone, PartialEq, ::prost::Message)]
74pub struct PortfolioLibraryView {
75 #[prost(string, tag = "1")]
77 pub directory: ::prost::alloc::string::String,
78 #[prost(message, repeated, tag = "2")]
79 pub portfolios: ::prost::alloc::vec::Vec<PortfolioView>,
80}
81#[derive(serde::Serialize, serde::Deserialize)]
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct PortfolioView {
84 #[prost(string, tag = "1")]
85 pub name: ::prost::alloc::string::String,
86 #[prost(string, tag = "2")]
87 pub as_of: ::prost::alloc::string::String,
88 #[prost(double, tag = "3")]
89 pub total_value: f64,
90 #[prost(double, optional, tag = "4")]
91 pub total_cost: ::core::option::Option<f64>,
92 #[prost(double, optional, tag = "5")]
93 pub unrealized: ::core::option::Option<f64>,
94 #[prost(double, optional, tag = "6")]
95 pub unrealized_pct: ::core::option::Option<f64>,
96 #[prost(uint32, tag = "7")]
98 pub without_cost_basis: u32,
99 #[prost(double, tag = "8")]
100 pub cash: f64,
101 #[prost(message, repeated, tag = "9")]
102 pub holdings: ::prost::alloc::vec::Vec<HoldingView>,
103 #[prost(string, repeated, tag = "10")]
104 pub unpriced: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
105 #[prost(message, repeated, tag = "11")]
109 pub value_history: ::prost::alloc::vec::Vec<ValuePoint>,
110 #[prost(message, optional, tag = "12")]
112 pub change: ::core::option::Option<ChangeView>,
113 #[prost(string, repeated, tag = "13")]
116 pub warnings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
117 #[prost(message, optional, tag = "14")]
121 pub import: ::core::option::Option<ImportView>,
122 #[prost(string, optional, tag = "15")]
126 pub source: ::core::option::Option<::prost::alloc::string::String>,
127 #[prost(bool, tag = "16")]
130 pub paper: bool,
131 #[prost(string, optional, tag = "17")]
134 pub refreshed_at: ::core::option::Option<::prost::alloc::string::String>,
135}
136#[derive(serde::Serialize, serde::Deserialize)]
138#[derive(Clone, Copy, PartialEq, ::prost::Message)]
139pub struct ValuePoint {
140 #[prost(int64, tag = "1")]
146 pub time: i64,
147 #[prost(double, tag = "2")]
148 pub value: f64,
149}