Automated Action b3827bf6b3 Add complete FastAPI delivery business backend
- Created customer, driver, and order models with SQLAlchemy
- Implemented CRUD API endpoints for all entities
- Set up SQLite database with Alembic migrations
- Added health check and base URL endpoints
- Configured CORS middleware for all origins
- Updated README with comprehensive documentation
2025-06-27 09:19:00 +00:00

32 lines
1.3 KiB
Python

from sqlalchemy import Column, Integer, String, DateTime, Float, ForeignKey, Text, Enum
from sqlalchemy.sql import func
from sqlalchemy.orm import relationship
import enum
from app.db.base import Base
class OrderStatus(enum.Enum):
PENDING = "pending"
CONFIRMED = "confirmed"
PICKED_UP = "picked_up"
IN_TRANSIT = "in_transit"
DELIVERED = "delivered"
CANCELLED = "cancelled"
class Order(Base):
__tablename__ = "orders"
id = Column(Integer, primary_key=True, index=True)
customer_id = Column(Integer, ForeignKey("customers.id"), nullable=False)
driver_id = Column(Integer, ForeignKey("drivers.id"), nullable=True)
pickup_address = Column(Text, nullable=False)
delivery_address = Column(Text, nullable=False)
package_description = Column(Text, nullable=True)
weight = Column(Float, nullable=True)
price = Column(Float, nullable=False)
status = Column(Enum(OrderStatus), default=OrderStatus.PENDING)
notes = Column(Text, nullable=True)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
customer = relationship("Customer", back_populates="orders")
driver = relationship("Driver", back_populates="orders")