from datetime import datetime, UTC from app import db class Product(db.Model): """Product model""" __tablename__ = "products" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(200), nullable=False, index=True) description = db.Column(db.Text) price = db.Column(db.Numeric(10, 2), nullable=False) stock = db.Column(db.Integer, default=0) image_url = db.Column(db.String(500)) is_active = db.Column(db.Boolean, default=True) created_at = db.Column(db.DateTime, default=lambda: datetime.now(UTC)) updated_at = db.Column(db.DateTime, default=lambda: datetime.now(UTC), onupdate=lambda: datetime.now(UTC)) # Relationships order_items = db.relationship("OrderItem", back_populates="product", lazy="dynamic") def to_dict(self): """Convert product to dictionary""" return { "id": self.id, "name": self.name, "description": self.description, "price": float(self.price) if self.price else None, "stock": self.stock, "image_url": self.image_url, "is_active": self.is_active, "created_at": self.created_at.isoformat() if self.created_at else None, "updated_at": self.updated_at.isoformat() if self.updated_at else None } def __repr__(self): return f""