
Renamed 'pool_metadata' to 'extra_data' in Pool model, schema, and migrations to avoid conflicts with SQLAlchemy's reserved 'metadata' attribute name. Generated with BackendIM... (backend.im)
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):
|
|
extra_data: 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
|
|
extra_data: Optional[Dict[str, Any]] = None
|
|
|
|
|
|
class PoolInDBBase(PoolBase):
|
|
id: int
|
|
volume_24h: Optional[float] = None
|
|
fees_24h: Optional[float] = None
|
|
tvl: Optional[float] = None
|
|
extra_data: 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 |