architect_api/boss/
protocol.rs

1use super::*;
2use crate::AccountId;
3use derive::grpc;
4use schemars::JsonSchema;
5use serde::{Deserialize, Serialize};
6use uuid::Uuid;
7
8#[grpc(package = "json.architect")]
9#[grpc(service = "Boss", name = "statements", response = "StatementsResponse")]
10#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
11pub struct StatementsRequest {
12    pub account_id: AccountId,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
16pub struct StatementsResponse {
17    pub statements: Vec<Statement>,
18}
19
20#[grpc(package = "json.architect")]
21#[grpc(service = "Boss", name = "statement_url", response = "StatementUrlResponse")]
22#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
23pub struct StatementUrlRequest {
24    pub statement_uuid: Uuid,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
28pub struct StatementUrlResponse {
29    pub statement_url: String,
30}
31
32#[grpc(package = "json.architect")]
33#[grpc(
34    service = "Boss",
35    name = "rqd_account_statistics",
36    response = "RqdAccountStatisticsResponse"
37)]
38#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
39pub struct RqdAccountStatisticsRequest {
40    pub account_id: AccountId,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
44pub struct RqdAccountStatisticsResponse {
45    pub rqd_account_statistics: RqdAccountStatistics,
46}
47
48#[grpc(package = "json.architect")]
49#[grpc(service = "Boss", name = "deposits", response = "DepositsResponse")]
50#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
51pub struct DepositsRequest {
52    pub account_id: AccountId,
53}
54
55#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
56pub struct DepositsResponse {
57    pub deposits: Vec<Deposit>,
58}
59
60#[grpc(package = "json.architect")]
61#[grpc(service = "Boss", name = "withdrawals", response = "WithdrawalsResponse")]
62#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
63pub struct WithdrawalsRequest {
64    pub account_id: AccountId,
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
68pub struct WithdrawalsResponse {
69    pub withdrawals: Vec<Withdrawal>,
70}
71
72#[grpc(package = "json.architect")]
73#[grpc(
74    service = "Boss",
75    name = "options_transactions",
76    response = "OptionsTransactionsResponse"
77)]
78#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
79pub struct OptionsTransactionsRequest {
80    pub account_id: AccountId,
81}
82
83#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
84pub struct OptionsTransactionsResponse {
85    pub options_transactions: Vec<OptionsTransaction>,
86}
87
88#[grpc(package = "json.architect")]
89#[grpc(service = "Boss", name = "margin_calls", response = "MarginCallsResponse")]
90#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
91pub struct MarginCallsRequest {
92    pub account_id: Option<AccountId>,
93    pub system_date: Option<NaiveDate>,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
97pub struct MarginCallsResponse {
98    pub margin_calls: Vec<MarginCall>,
99}