from datetime import datetime from typing import List, Optional from pydantic import BaseModel, Field from app.models.order import OrderStatus # OrderItem schemas class OrderItemBase(BaseModel): product_id: str quantity: int = Field(..., gt=0) price: float = Field(..., gt=0) class OrderItemCreate(OrderItemBase): pass class OrderItem(OrderItemBase): id: str order_id: str class Config: orm_mode = True # Order schemas class OrderBase(BaseModel): shipping_address: Optional[str] = None tracking_number: Optional[str] = None payment_id: Optional[str] = None status: OrderStatus = OrderStatus.PENDING class OrderCreate(OrderBase): items: List[OrderItemCreate] class OrderUpdate(OrderBase): pass class Order(OrderBase): id: str user_id: str total_amount: float created_at: datetime updated_at: datetime items: List[OrderItem] = [] class Config: orm_mode = True