// @generated
// This file is @generated by prost-build.
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetProfileRequest {
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetProfileResponse {
    #[prost(string, tag="1")]
    pub id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub address: ::prost::alloc::string::String,
    #[prost(string, optional, tag="3")]
    pub username: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="4")]
    pub account_type: ::prost::alloc::string::String,
    #[prost(bool, tag="5")]
    pub can_withdraw: bool,
    #[prost(string, tag="6")]
    pub created_at: ::prost::alloc::string::String,
    #[prost(int32, optional, tag="7")]
    pub maker_fee_bps: ::core::option::Option<i32>,
    #[prost(int32, optional, tag="8")]
    pub taker_fee_bps: ::core::option::Option<i32>,
    #[prost(int32, optional, tag="9")]
    pub application_taker_fee_bps: ::core::option::Option<i32>,
    #[prost(int32, optional, tag="10")]
    pub application_maker_fee_bps: ::core::option::Option<i32>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetBalancesRequest {
    #[prost(uint32, optional, tag="1")]
    pub page: ::core::option::Option<u32>,
    #[prost(uint32, optional, tag="2")]
    pub page_size: ::core::option::Option<u32>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetBalanceByAssetRequest {
    #[prost(string, tag="1")]
    pub asset_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetBalanceByAssetResponse {
    #[prost(string, tag="1")]
    pub token: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub symbol: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(int32, tag="3")]
    pub decimals: i32,
    #[prost(string, tag="4")]
    pub available_balance: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub locked_balance: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub total_balance: ::prost::alloc::string::String,
    #[prost(string, optional, tag="7")]
    pub available_balance_raw: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="8")]
    pub locked_balance_raw: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="9")]
    pub asset_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetBalancesResponse {
    #[prost(message, repeated, tag="1")]
    pub balances: ::prost::alloc::vec::Vec<super::super::common::balances::AccountBalance>,
    #[prost(uint32, tag="2")]
    pub total: u32,
    #[prost(uint32, tag="3")]
    pub page: u32,
    #[prost(uint32, tag="4")]
    pub page_size: u32,
    #[prost(uint32, tag="5")]
    pub total_pages: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetMovementsRequest {
    #[prost(uint32, optional, tag="1")]
    pub page: ::core::option::Option<u32>,
    #[prost(uint32, optional, tag="2")]
    pub page_size: ::core::option::Option<u32>,
    #[prost(string, optional, tag="3")]
    pub transaction_type: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub entry_type: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="5")]
    pub asset_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="6")]
    pub order_by: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMovementsResponse {
    #[prost(message, repeated, tag="1")]
    pub movements: ::prost::alloc::vec::Vec<super::super::common::movements::LedgerMovement>,
    #[prost(uint32, tag="2")]
    pub total: u32,
    #[prost(uint32, tag="3")]
    pub page: u32,
    #[prost(uint32, tag="4")]
    pub page_size: u32,
    #[prost(uint32, tag="5")]
    pub total_pages: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListFundingPaymentsRequest {
    #[prost(string, optional, tag="1")]
    pub trading_pair_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="2")]
    pub position_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="3")]
    pub margin_account_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(uint32, optional, tag="4")]
    pub page: ::core::option::Option<u32>,
    #[prost(uint32, optional, tag="5")]
    pub page_size: ::core::option::Option<u32>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FundingPaymentRecord {
    #[prost(string, tag="1")]
    pub id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub position_id: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub margin_account_id: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub funding_rate: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub position_size: ::prost::alloc::string::String,
    #[prost(string, tag="7")]
    pub payment_amount: ::prost::alloc::string::String,
    #[prost(string, tag="8")]
    pub direction: ::prost::alloc::string::String,
    #[prost(string, optional, tag="9")]
    pub period_start: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="10")]
    pub period_end: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="11")]
    pub created_at: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListFundingPaymentsResponse {
    #[prost(message, repeated, tag="1")]
    pub records: ::prost::alloc::vec::Vec<FundingPaymentRecord>,
    #[prost(uint32, tag="2")]
    pub total: u32,
    #[prost(uint32, tag="3")]
    pub page: u32,
    #[prost(uint32, tag="4")]
    pub page_size: u32,
    #[prost(uint32, tag="5")]
    pub total_pages: u32,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListSubAccountsRequest {
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSubAccountsResponse {
    #[prost(message, repeated, tag="1")]
    pub sub_accounts: ::prost::alloc::vec::Vec<super::super::common::sub_account::SubAccount>,
    #[prost(uint32, tag="2")]
    pub total: u32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateLimitRequest {
    #[prost(string, tag="1")]
    pub sub_account_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub asset_id: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub max_amount: ::prost::alloc::string::String,
    #[prost(string, optional, tag="4")]
    pub daily_limit: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UpdateLimitRequest {
    #[prost(string, tag="1")]
    pub sub_account_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub asset_id: ::prost::alloc::string::String,
    #[prost(string, optional, tag="3")]
    pub max_amount: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub daily_limit: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bool, optional, tag="5")]
    pub is_active: ::core::option::Option<bool>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateLimitResponse {
    #[prost(message, optional, tag="1")]
    pub limit: ::core::option::Option<super::super::common::sub_account::SubAccountLimit>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UpdateLimitResponse {
    #[prost(message, optional, tag="1")]
    pub limit: ::core::option::Option<super::super::common::sub_account::SubAccountLimit>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetLimitsRequest {
    #[prost(string, optional, tag="1")]
    pub sub_account_id: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetLimitsResponse {
    #[prost(message, repeated, tag="1")]
    pub limits: ::prost::alloc::vec::Vec<super::super::common::sub_account::SubAccountLimit>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeleteLimitRequest {
    #[prost(string, tag="1")]
    pub sub_account_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub asset_id: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub limit_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeleteLimitResponse {
    #[prost(string, tag="1")]
    pub message: ::prost::alloc::string::String,
}
// ============================================================================
// USER TRADES (MON-847)
// ============================================================================

#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetUserTradesRequest {
    #[prost(uint32, optional, tag="1")]
    pub page: ::core::option::Option<u32>,
    #[prost(uint32, optional, tag="2")]
    pub page_size: ::core::option::Option<u32>,
    #[prost(string, optional, tag="3")]
    pub trading_pair_id: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UserTrade {
    #[prost(string, tag="1")]
    pub trade_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub trading_pair_id: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub price: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub quantity: ::prost::alloc::string::String,
    #[prost(string, optional, tag="5")]
    pub quote_volume: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="6")]
    pub side: ::prost::alloc::string::String,
    #[prost(string, optional, tag="7")]
    pub fee: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="8")]
    pub fee_token: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="9")]
    pub executed_at: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetUserTradesResponse {
    #[prost(message, repeated, tag="1")]
    pub trades: ::prost::alloc::vec::Vec<UserTrade>,
    #[prost(uint64, tag="2")]
    pub page: u64,
    #[prost(uint64, tag="3")]
    pub page_size: u64,
    #[prost(uint64, tag="4")]
    pub total: u64,
    #[prost(uint64, tag="5")]
    pub total_pages: u64,
}
// ============================================================================
// PORTFOLIO STATS (MON-848)
// ============================================================================

#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetPortfolioStatsRequest {
    #[prost(string, optional, tag="1")]
    pub period: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPortfolioStatsResponse {
    #[prost(string, tag="1")]
    pub period: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub volume: ::prost::alloc::string::String,
    #[prost(uint64, tag="3")]
    pub total_trades: u64,
    #[prost(uint64, tag="4")]
    pub total_orders: u64,
    #[prost(string, tag="5")]
    pub fees_paid: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub pnl: ::prost::alloc::string::String,
    #[prost(string, tag="7")]
    pub total_equity: ::prost::alloc::string::String,
    #[prost(string, tag="8")]
    pub spot_equity: ::prost::alloc::string::String,
    #[prost(string, tag="9")]
    pub perps_equity: ::prost::alloc::string::String,
    #[prost(double, optional, tag="10")]
    pub win_loss_ratio: ::core::option::Option<f64>,
    #[prost(string, optional, tag="11")]
    pub max_drawdown: ::core::option::Option<::prost::alloc::string::String>,
}
// ============================================================================
// PORTFOLIO CHART (MON-849)
// ============================================================================

#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetPortfolioChartRequest {
    #[prost(string, optional, tag="1")]
    pub period: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="2")]
    pub metric: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ChartDataPoint {
    #[prost(string, tag="1")]
    pub timestamp: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub value: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetPortfolioChartResponse {
    #[prost(string, tag="1")]
    pub metric: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub period: ::prost::alloc::string::String,
    #[prost(message, repeated, tag="3")]
    pub data: ::prost::alloc::vec::Vec<ChartDataPoint>,
}
include!("monaco.api.accounts.tonic.rs");
// @@protoc_insertion_point(module)