from sqlalchemy import Column, Integer, String, Float, Text, Boolean, DateTime, ForeignKey from sqlalchemy.sql import func from sqlalchemy.orm import relationship from app.db.session import Base class Category(Base): __tablename__ = "categories" id = Column(Integer, primary_key=True, index=True) name = Column(String, unique=True, index=True, nullable=False) description = Column(Text) # Relationship products = relationship("Product", back_populates="category") class Product(Base): __tablename__ = "products" id = Column(Integer, primary_key=True, index=True) name = Column(String, index=True, nullable=False) description = Column(Text) price = Column(Float, nullable=False) stock = Column(Integer, default=0) is_active = Column(Boolean, default=True) category_id = Column(Integer, ForeignKey("categories.id")) image_url = Column(String) created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), onupdate=func.now()) # Relationships category = relationship("Category", back_populates="products") order_items = relationship("OrderItem", back_populates="product")