use serde::{Deserialize, Serialize};
use rust_decimal::Decimal;
use chrono::{DateTime, Utc};
use super::{PageDetails, ApiErrorDetail};
#[derive(Debug, Deserialize, Serialize)]
pub struct CompactOrder {
#[serde(with = "rust_decimal::serde::str")] pub price: Decimal, #[serde(rename = "amount_currency_to_trade")] #[serde(with = "rust_decimal::serde::str")] pub amount_currency_to_trade: Decimal, }
#[derive(Debug, Deserialize, Serialize)]
pub struct CompactOrderbook {
pub bids: Vec<CompactOrder>, pub asks: Vec<CompactOrder>, }
#[derive(Debug, Deserialize, Serialize)]
pub struct ShowOrderbookCompactResponse {
#[serde(rename = "trading_pair")]
pub trading_pair: String, pub orders: CompactOrderbook, pub errors: Vec<ApiErrorDetail>, pub credits: i32,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct PublicTradeEntry {
#[serde(with = "chrono::serde::ts_seconds")] pub date: DateTime<Utc>, #[serde(with = "rust_decimal::serde::str")] pub price: Decimal, #[serde(rename = "amount_currency_to_trade")] #[serde(with = "rust_decimal::serde::str")] pub amount_currency_to_trade: Decimal, pub tid: i64, }
#[derive(Debug, Deserialize, Serialize)]
pub struct ShowPublicTradeHistoryResponse {
#[serde(rename = "trading_pair")]
pub trading_pair: String, pub trades: Vec<PublicTradeEntry>, pub errors: Vec<ApiErrorDetail>, pub credits: i32,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct RatesDetails {
#[serde(rename = "rate_weighted")]
#[serde(with = "rust_decimal::serde::str")]
pub rate_weighted: Decimal, #[serde(rename = "rate_weighted_3h")]
#[serde(with = "rust_decimal::serde::str")]
pub rate_weighted_3h: Decimal, #[serde(rename = "rate_weighted_12h")]
#[serde(with = "rust_decimal::serde::str")]
pub rate_weighted_12h: Decimal, }
#[derive(Debug, Deserialize, Serialize)]
pub struct ShowRatesResponse {
#[serde(rename = "trading_pair")]
pub trading_pair: String, pub rates: RatesDetails, pub errors: Vec<ApiErrorDetail>, pub credits: i32,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct OutgoingAddressDetails {
#[serde(rename = "address_id")]
pub address_id: i64, #[serde(rename = "recipient_address")]
pub recipient_address: String, #[serde(rename = "recipient_purpose")]
pub recipient_purpose: Option<String>, pub comment: Option<String>, }
#[derive(Debug, Deserialize, Serialize)]
pub struct ShowOutgoingAddressesResponse { #[serde(rename = "outgoing_address")]
pub outgoing_address: Vec<OutgoingAddressDetails>, pub page: PageDetails, pub errors: Vec<ApiErrorDetail>,
pub credits: i32,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct BasicSuccessResponse {
pub errors: Vec<ApiErrorDetail>,
pub credits: i32,
}