from sqlalchemy import Column, String, Float, Integer, Text, ForeignKey from sqlalchemy.orm import relationship from app.models.base import BaseModel class Category(BaseModel): """Product category model""" __tablename__ = "categories" name = Column(String(100), unique=True, index=True, nullable=False) description = Column(Text, nullable=True) # Relationships products = relationship("Product", back_populates="category") class Product(BaseModel): """Product model for inventory items""" __tablename__ = "products" name = Column(String(255), nullable=False, index=True) description = Column(Text, nullable=True) sku = Column(String(50), unique=True, index=True, nullable=False) category_id = Column(Integer, ForeignKey("categories.id"), nullable=True) price = Column(Float, nullable=False) cost_price = Column(Float, nullable=False) barcode = Column(String(100), unique=True, nullable=True) # Relationships category = relationship("Category", back_populates="products") inventory_items = relationship("InventoryItem", back_populates="product") purchase_items = relationship("PurchaseItem", back_populates="product")