use std::collections::HashMap;
use serde::Deserialize;
pub use crate::models::crypto::CoinQuote;
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct SearchResponseDTO {
#[serde(default)]
pub coins: Vec<SearchCoinDTO>,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct SearchCoinDTO {
pub id: String,
pub name: String,
#[serde(default)]
pub symbol: Option<String>,
#[serde(default)]
pub market_cap_rank: Option<u32>,
#[serde(default)]
pub thumb: Option<String>,
#[serde(default)]
pub large: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct TrendingResponseDTO {
#[serde(default)]
pub coins: Vec<TrendingCoinWrapperDTO>,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct TrendingCoinWrapperDTO {
pub item: TrendingCoinItemDTO,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct TrendingCoinItemDTO {
pub id: String,
pub name: String,
pub symbol: String,
pub market_cap_rank: Option<u32>,
pub price_btc: Option<f64>,
pub score: Option<u32>,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct GlobalResponseDTO {
pub data: GlobalDataDTO,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct GlobalDataDTO {
pub active_cryptocurrencies: Option<u32>,
pub markets: Option<u32>,
#[serde(default)]
pub total_market_cap: HashMap<String, f64>,
#[serde(default)]
pub total_volume: HashMap<String, f64>,
#[serde(default)]
pub market_cap_percentage: HashMap<String, f64>,
pub market_cap_change_percentage_24h_usd: Option<f64>,
}