2025-06-04 22:37:35 +00:00

53 lines
979 B
Python

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