use std::collections::HashMap;
use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum AssetType {
Fiat,
Crypto,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum ListingStatus {
Active,
Inactive,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Currency {
pub symbol: String,
pub name: String,
pub scale: u32,
pub asset_type: AssetType,
pub status: ListingStatus,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CurrencyPair {
pub base: String,
pub quote: String,
#[serde(with = "rust_decimal::serde::str")]
pub base_step: Decimal,
#[serde(with = "rust_decimal::serde::str")]
pub quote_step: Decimal,
#[serde(with = "rust_decimal::serde::str")]
pub min_order_size: Decimal,
#[serde(with = "rust_decimal::serde::str")]
pub max_order_size: Decimal,
#[serde(with = "rust_decimal::serde::str")]
pub min_order_size_quote: Decimal,
pub status: ListingStatus,
}
pub type Currencies = HashMap<String, Currency>;
pub type CurrencyPairs = HashMap<String, CurrencyPair>;