71 lines
1.4 KiB
Python

from pydantic import BaseModel, Field
from typing import List, Optional, Dict, Any
from datetime import datetime
class AssetBase(BaseModel):
id: str
rank: Optional[str] = None
symbol: str
name: str
supply: Optional[str] = None
max_supply: Optional[str] = None
market_cap_usd: Optional[str] = None
volume_usd_24hr: Optional[str] = None
price_usd: Optional[str] = None
change_percent_24hr: Optional[str] = None
vwap_24hr: Optional[str] = None
explorer: Optional[str] = None
class AssetCreate(AssetBase):
pass
class AssetInDB(AssetBase):
last_updated: datetime
class Config:
orm_mode = True
class AssetResponse(BaseModel):
timestamp: int
data: List[AssetBase]
class SingleAssetResponse(BaseModel):
timestamp: int
data: AssetBase
class AssetHistoryPoint(BaseModel):
price_usd: str
time: int # Unix timestamp in milliseconds
date: datetime
class AssetHistoryResponse(BaseModel):
timestamp: int
data: List[AssetHistoryPoint]
class AssetMarket(BaseModel):
exchange_id: str
base_id: str
quote_id: str
base_symbol: str
quote_symbol: str
volume_usd_24hr: str
price_usd: str
volume_percent: str
class AssetMarketsResponse(BaseModel):
timestamp: int
data: List[AssetMarket]
class ErrorResponse(BaseModel):
error: str
timestamp: Optional[int] = None