72 lines
1.9 KiB
Python
72 lines
1.9 KiB
Python
from datetime import datetime
|
|
from typing import List, Optional, Dict, Any
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class PoolBase(BaseModel):
|
|
dex_id: int
|
|
address: str
|
|
token_a_address: str
|
|
token_a_symbol: Optional[str] = None
|
|
token_a_name: Optional[str] = None
|
|
token_a_decimals: Optional[int] = None
|
|
token_b_address: str
|
|
token_b_symbol: Optional[str] = None
|
|
token_b_name: Optional[str] = None
|
|
token_b_decimals: Optional[int] = None
|
|
token_a_reserve: Optional[float] = None
|
|
token_b_reserve: Optional[float] = None
|
|
last_updated_slot: Optional[int] = None
|
|
fee_rate: Optional[float] = None
|
|
pool_type: Optional[str] = None
|
|
is_active: bool = True
|
|
|
|
|
|
class PoolCreate(PoolBase):
|
|
pool_metadata: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
class PoolUpdate(BaseModel):
|
|
token_a_symbol: Optional[str] = None
|
|
token_a_name: Optional[str] = None
|
|
token_a_decimals: Optional[int] = None
|
|
token_b_symbol: Optional[str] = None
|
|
token_b_name: Optional[str] = None
|
|
token_b_decimals: Optional[int] = None
|
|
token_a_reserve: Optional[float] = None
|
|
token_b_reserve: Optional[float] = None
|
|
last_updated_slot: Optional[int] = None
|
|
volume_24h: Optional[float] = None
|
|
fees_24h: Optional[float] = None
|
|
tvl: Optional[float] = None
|
|
fee_rate: Optional[float] = None
|
|
pool_type: Optional[str] = None
|
|
is_active: Optional[bool] = None
|
|
pool_metadata: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
class PoolInDBBase(PoolBase):
|
|
id: int
|
|
volume_24h: Optional[float] = None
|
|
fees_24h: Optional[float] = None
|
|
tvl: Optional[float] = None
|
|
pool_metadata: Optional[Dict[str, Any]] = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class Pool(PoolInDBBase):
|
|
pass
|
|
|
|
|
|
class PoolWithDex(Pool):
|
|
dex_name: str
|
|
dex_address: str
|
|
|
|
|
|
class PoolList(BaseModel):
|
|
pools: List[PoolWithDex]
|
|
total: int |