Automated Action 538a985c8e Build e-commerce API with FastAPI and SQLite
Create a complete e-commerce application with the following features:
- User authentication and authorization
- Product and category management
- Shopping cart functionality
- Order processing
- Database migrations with Alembic
- Comprehensive documentation
2025-05-26 11:05:27 +00:00

70 lines
1.2 KiB
Python

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