rust_types/ledger_models/
transaction.rs

1#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2#[repr(i32)]
3pub enum TransactionTypeProto {
4    Unknown = 0,
5    Buy = 1,
6    Sell = 2,
7    Deposit = 3,
8    Withdrawal = 4,
9    Maturation = 5,
10    MaturationOffset = 6,
11}
12impl TransactionTypeProto {
13    /// String value of the enum field names used in the ProtoBuf definition.
14    ///
15    /// The values are not transformed in any way and thus are considered stable
16    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
17    pub fn as_str_name(&self) -> &'static str {
18        match self {
19            TransactionTypeProto::Unknown => "UNKNOWN",
20            TransactionTypeProto::Buy => "BUY",
21            TransactionTypeProto::Sell => "SELL",
22            TransactionTypeProto::Deposit => "DEPOSIT",
23            TransactionTypeProto::Withdrawal => "WITHDRAWAL",
24            TransactionTypeProto::Maturation => "MATURATION",
25            TransactionTypeProto::MaturationOffset => "MATURATION_OFFSET",
26        }
27    }
28}
29#[derive(Clone, PartialEq, ::prost::Message)]
30pub struct TransactionProto {
31    #[prost(string, tag = "1")]
32    pub object_class: ::prost::alloc::string::String,
33    #[prost(string, tag = "2")]
34    pub version: ::prost::alloc::string::String,
35    /// Primary Key
36    #[prost(message, optional, tag = "5")]
37    pub uuid: ::core::option::Option<super::util::UuidProto>,
38    #[prost(message, optional, tag = "6")]
39    pub as_of: ::core::option::Option<super::util::LocalTimestampProto>,
40    #[prost(bool, tag = "7")]
41    pub is_link: bool,
42    /// Transaction details
43    #[prost(message, optional, tag = "10")]
44    pub portfolio: ::core::option::Option<super::portfolio::PortfolioProto>,
45    #[prost(message, optional, tag = "11")]
46    pub security: ::core::option::Option<super::security::SecurityProto>,
47    #[prost(enumeration = "TransactionTypeProto", tag = "12")]
48    pub transaction_type: i32,
49    #[prost(message, optional, tag = "13")]
50    pub quantity: ::core::option::Option<super::util::DecimalValueProto>,
51    #[prost(message, optional, tag = "14")]
52    pub price: ::core::option::Option<super::price::PriceProto>,
53    /// NOTE: We're using timestamps for dates. The time portion will be ignored when parsing
54    #[prost(message, optional, tag = "15")]
55    pub trade_date: ::core::option::Option<super::util::LocalDateProto>,
56    #[prost(message, optional, tag = "16")]
57    pub settlement_date: ::core::option::Option<super::util::LocalDateProto>,
58    /// Lineage
59    ///   TransactionProto cashTransaction = 20;
60    ///   TransactionProto parentTransaction = 21;
61    #[prost(message, repeated, tag = "20")]
62    pub child_transactions: ::prost::alloc::vec::Vec<TransactionProto>,
63    /// Business metadata
64    #[prost(enumeration = "super::position::PositionStatusProto", tag = "25")]
65    pub position_status: i32,
66    #[prost(string, tag = "26")]
67    pub trade_name: ::prost::alloc::string::String,
68    #[prost(message, optional, tag = "27")]
69    pub strategy_allocation: ::core::option::Option<
70        super::strategy::StrategyAllocationProto,
71    >,
72    /// System-based fields
73    #[prost(bool, tag = "30")]
74    pub is_cancelled: bool,
75}
76#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct TransactionRequestProto {
78    #[prost(string, tag = "1")]
79    pub object_class: ::prost::alloc::string::String,
80    #[prost(string, tag = "2")]
81    pub version: ::prost::alloc::string::String,
82    #[prost(enumeration = "super::util::RequestOperationTypeProto", tag = "10")]
83    pub operation_type: i32,
84    #[prost(message, optional, tag = "20")]
85    pub create_transaction_input: ::core::option::Option<TransactionProto>,
86    #[prost(message, repeated, tag = "21")]
87    pub uuids: ::prost::alloc::vec::Vec<super::util::UuidProto>,
88    #[prost(message, optional, tag = "22")]
89    pub search_transaction_input: ::core::option::Option<
90        super::position::PositionFilterProto,
91    >,
92}
93#[derive(Clone, PartialEq, ::prost::Message)]
94pub struct TransactionResponseProto {
95    #[prost(string, tag = "1")]
96    pub object_class: ::prost::alloc::string::String,
97    #[prost(string, tag = "2")]
98    pub version: ::prost::alloc::string::String,
99    #[prost(message, optional, tag = "20")]
100    pub create_transaction_request: ::core::option::Option<TransactionRequestProto>,
101    #[prost(message, repeated, tag = "30")]
102    pub transaction_response: ::prost::alloc::vec::Vec<TransactionProto>,
103}