from datetime import datetime from typing import List, Optional from pydantic import BaseModel class DexBase(BaseModel): name: str address: str program_id: str version: Optional[str] = None description: Optional[str] = None website: Optional[str] = None class DexCreate(DexBase): pass class DexUpdate(BaseModel): name: Optional[str] = None program_id: Optional[str] = None version: Optional[str] = None description: Optional[str] = None website: Optional[str] = None volume_24h: Optional[float] = None volume_7d: Optional[float] = None class DexInDBBase(DexBase): id: int volume_24h: Optional[float] = None volume_7d: Optional[float] = None created_at: datetime updated_at: datetime class Config: from_attributes = True class Dex(DexInDBBase): pass class DexWithPoolCount(Dex): pool_count: int class DexList(BaseModel): dexes: List[DexWithPoolCount] total: int