#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct PortfolioName {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeView {
#[prost(string, tag = "1")]
pub from: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub to: ::prost::alloc::string::String,
#[prost(double, tag = "3")]
pub absolute: f64,
#[prost(double, optional, tag = "4")]
pub percent: ::core::option::Option<f64>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HoldingView {
#[prost(string, tag = "1")]
pub instrument: ::prost::alloc::string::String,
#[prost(double, optional, tag = "2")]
pub quantity: ::core::option::Option<f64>,
#[prost(double, optional, tag = "3")]
pub price: ::core::option::Option<f64>,
#[prost(double, tag = "4")]
pub market_value: f64,
#[prost(double, optional, tag = "5")]
pub cost_basis: ::core::option::Option<f64>,
#[prost(double, optional, tag = "6")]
pub unrealized: ::core::option::Option<f64>,
#[prost(double, optional, tag = "7")]
pub unrealized_pct: ::core::option::Option<f64>,
#[prost(double, tag = "8")]
pub weight: f64,
#[prost(string, tag = "9")]
pub priced_by: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ImportView {
#[prost(message, repeated, tag = "1")]
pub columns: ::prost::alloc::vec::Vec<NamedText>,
#[prost(string, repeated, tag = "2")]
pub ignored: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(uint32, tag = "3")]
pub rows_imported: u32,
#[prost(string, repeated, tag = "4")]
pub rows_skipped: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(bool, tag = "5")]
pub cost_basis_derived: bool,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct NamedText {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub value: ::prost::alloc::string::String,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioLibraryView {
#[prost(string, tag = "1")]
pub directory: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub portfolios: ::prost::alloc::vec::Vec<PortfolioView>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PortfolioView {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub as_of: ::prost::alloc::string::String,
#[prost(double, tag = "3")]
pub total_value: f64,
#[prost(double, optional, tag = "4")]
pub total_cost: ::core::option::Option<f64>,
#[prost(double, optional, tag = "5")]
pub unrealized: ::core::option::Option<f64>,
#[prost(double, optional, tag = "6")]
pub unrealized_pct: ::core::option::Option<f64>,
#[prost(uint32, tag = "7")]
pub without_cost_basis: u32,
#[prost(double, tag = "8")]
pub cash: f64,
#[prost(message, repeated, tag = "9")]
pub holdings: ::prost::alloc::vec::Vec<HoldingView>,
#[prost(string, repeated, tag = "10")]
pub unpriced: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, repeated, tag = "11")]
pub value_history: ::prost::alloc::vec::Vec<ValuePoint>,
#[prost(message, optional, tag = "12")]
pub change: ::core::option::Option<ChangeView>,
#[prost(string, repeated, tag = "13")]
pub warnings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(message, optional, tag = "14")]
pub import: ::core::option::Option<ImportView>,
#[prost(string, optional, tag = "15")]
pub source: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, tag = "16")]
pub paper: bool,
#[prost(string, optional, tag = "17")]
pub refreshed_at: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ValuePoint {
#[prost(int64, tag = "1")]
pub time: i64,
#[prost(double, tag = "2")]
pub value: f64,
}