use {
crate::types::graphql::{SpotPositionGraphQL, UserStatusGraphQL},
carbon_core::graphql::primitives::{Pubkey, U64, U8},
juniper::GraphQLObject,
};
#[derive(Debug, Clone, GraphQLObject)]
#[graphql(name = "MinimalUser")]
pub struct MinimalUserGraphQL {
pub account_metadata: crate::accounts::graphql::AccountMetadataGraphQL,
pub authority: Pubkey,
pub delegate: Pubkey,
pub name: Vec<U8>,
pub spot_positions: Vec<SpotPositionGraphQL>,
pub padding1: Vec<U64>,
pub padding2: Vec<U64>,
pub padding3: Vec<U64>,
pub padding4: Vec<U64>,
pub padding5: Vec<U64>,
pub padding6: Vec<U64>,
pub padding7: Vec<i32>,
pub sub_account_id: i32,
pub status: UserStatusGraphQL,
pub padding8: Vec<U8>,
}
impl TryFrom<crate::accounts::postgres::MinimalUserRow> for MinimalUserGraphQL {
type Error = carbon_core::error::Error;
fn try_from(row: crate::accounts::postgres::MinimalUserRow) -> Result<Self, Self::Error> {
Ok(Self {
account_metadata: row.account_metadata.into(),
authority: carbon_core::graphql::primitives::Pubkey(row.authority.0),
delegate: carbon_core::graphql::primitives::Pubkey(row.delegate.0),
name: row
.name
.into_iter()
.map(carbon_core::graphql::primitives::U8)
.collect(),
spot_positions: row
.spot_positions
.0
.into_iter()
.map(|item| item.into())
.collect(),
padding1: row
.padding1
.into_iter()
.map(|item| carbon_core::graphql::primitives::U64(*item))
.collect(),
padding2: row
.padding2
.into_iter()
.map(|item| carbon_core::graphql::primitives::U64(*item))
.collect(),
padding3: row
.padding3
.into_iter()
.map(|item| carbon_core::graphql::primitives::U64(*item))
.collect(),
padding4: row
.padding4
.into_iter()
.map(|item| carbon_core::graphql::primitives::U64(*item))
.collect(),
padding5: row
.padding5
.into_iter()
.map(|item| carbon_core::graphql::primitives::U64(*item))
.collect(),
padding6: row
.padding6
.into_iter()
.map(|item| carbon_core::graphql::primitives::U64(*item))
.collect(),
padding7: row.padding7.into_iter().map(|item| *item).collect(),
sub_account_id: *row.sub_account_id,
status: row.status.0.into(),
padding8: row
.padding8
.into_iter()
.map(carbon_core::graphql::primitives::U8)
.collect(),
})
}
}