architect_api/accounts/
mod.rs1use crate::{Account, AccountPermissions, TraderIdOrEmail, UserId};
2use derive::grpc;
3use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6pub mod account;
7pub mod clearing_account;
8pub mod trader;
9
10#[grpc(package = "json.architect")]
11#[grpc(service = "Accounts", name = "accounts", response = "AccountsResponse")]
12#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
13pub struct AccountsRequest {
14 pub trader: Option<TraderIdOrEmail>,
17 #[serde(default)]
18 pub paper: bool,
19}
20
21#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
22pub struct AccountsResponse {
23 pub accounts: Vec<AccountWithPermissions>,
24}
25
26#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
27#[cfg_attr(feature = "graphql", derive(juniper::GraphQLObject))]
28pub struct AccountWithPermissions {
29 pub account: Account,
30 pub trader: UserId,
31 pub permissions: AccountPermissions,
32}