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}