Automated Action 75771a2383 Fix metadata attribute name conflict in Pool model
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)
2025-05-12 15:01:57 +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):
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