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 trader;
8
9#[grpc(package = "json.architect")]
10#[grpc(service = "Accounts", name = "accounts", response = "AccountsResponse")]
11#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
12pub struct AccountsRequest {
13 pub trader: Option<TraderIdOrEmail>,
16}
17
18#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
19pub struct AccountsResponse {
20 pub accounts: Vec<AccountWithPermissions>,
21}
22
23#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
24#[cfg_attr(feature = "graphql", derive(juniper::GraphQLObject))]
25pub struct AccountWithPermissions {
26 pub account: Account,
27 pub trader: UserId,
28 pub permissions: AccountPermissions,
29}