from typing import Optional from pydantic import BaseModel from datetime import datetime from app.models.order import OrderStatus class OrderBase(BaseModel): advertisement_id: int crypto_amount: float fiat_amount: float notes: Optional[str] = None class OrderCreate(OrderBase): pass class OrderUpdate(BaseModel): status: Optional[OrderStatus] = None payment_reference: Optional[str] = None notes: Optional[str] = None class OrderInDBBase(OrderBase): id: Optional[int] = None buyer_id: Optional[int] = None seller_id: Optional[int] = None cryptocurrency_id: Optional[int] = None price: Optional[float] = None status: Optional[OrderStatus] = None payment_account_number: Optional[str] = None payment_reference: Optional[str] = None created_at: Optional[datetime] = None updated_at: Optional[datetime] = None expires_at: Optional[datetime] = None class Config: from_attributes = True class Order(OrderInDBBase): pass