from sqlalchemy import Column, String, Float, Integer, DateTime, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base from datetime import datetime Base = declarative_base() class Order(Base): __tablename__ = "orders" id = Column(Integer, primary_key=True, index=True) customer_name = Column(String, nullable=False) customer_email = Column(String, nullable=False) status = Column(String, default="pending") total = Column(Float, default=0.0) created_at = Column(DateTime, default=datetime.now) updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now) items = relationship("OrderItem", back_populates="order", cascade="all, delete-orphan") class OrderItem(Base): __tablename__ = "order_items" id = Column(Integer, primary_key=True, index=True) order_id = Column(Integer, ForeignKey("orders.id"), nullable=False) product_name = Column(String, nullable=False) quantity = Column(Integer, default=1) price = Column(Float, nullable=False) created_at = Column(DateTime, default=datetime.now) order = relationship("Order", back_populates="items")