2025-05-12 14:58:36 +00:00

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