from typing import Optional from pydantic import BaseModel from datetime import datetime from app.models.advertisement import AdType, AdStatus class AdvertisementBase(BaseModel): cryptocurrency_id: int ad_type: AdType price: float min_order_amount: float max_order_amount: float available_amount: float payment_methods: str terms_conditions: Optional[str] = None class AdvertisementCreate(AdvertisementBase): pass class AdvertisementUpdate(BaseModel): price: Optional[float] = None min_order_amount: Optional[float] = None max_order_amount: Optional[float] = None available_amount: Optional[float] = None payment_methods: Optional[str] = None terms_conditions: Optional[str] = None status: Optional[AdStatus] = None class AdvertisementInDBBase(AdvertisementBase): id: Optional[int] = None user_id: Optional[int] = None status: Optional[AdStatus] = None created_at: Optional[datetime] = None updated_at: Optional[datetime] = None class Config: from_attributes = True class Advertisement(AdvertisementInDBBase): pass