CoolFace
Apppublic

Mariem-Daha/chefcode

sourceHugging Faceupdated 11mo agoView on Hugging Face
0likes
models.py55 linesDownload Raw Back to backend
1from sqlalchemy import Column, Integer, String, Float, Text, DateTime, Boolean, Date2from sqlalchemy.sql import func3from database import Base4from datetime import datetime, date5 6class InventoryItem(Base):7    __tablename__ = "inventory_items"8    9    id = Column(Integer, primary_key=True, index=True)10    name = Column(String, index=True, nullable=False)11    unit = Column(String, default="pz")12    quantity = Column(Float, default=0.0)13    category = Column(String, default="Other")14    price = Column(Float, default=0.0)15    # HACCP Traceability fields16    lot_number = Column(String, nullable=True)  # Batch/Lot number for traceability17    expiry_date = Column(Date, nullable=True)  # Expiry date for HACCP compliance18    created_at = Column(DateTime(timezone=True), server_default=func.now())19    updated_at = Column(DateTime(timezone=True), onupdate=func.now())20 21class Recipe(Base):22    __tablename__ = "recipes"23    24    id = Column(Integer, primary_key=True, index=True)25    name = Column(String, index=True, nullable=False, unique=True)26    items = Column(Text)  # JSON string of recipe items27    instructions = Column(Text, default="")28    yield_data = Column(Text, nullable=True)  # JSON string of yield info: {"qty": 10, "unit": "pz"}29    # Web recipe metadata30    source_url = Column(String, nullable=True)  # Original recipe URL (e.g., TheMealDB)31    image_url = Column(String, nullable=True)  # Recipe thumbnail/image URL32    cuisine = Column(String, nullable=True)  # Cuisine type (Italian, Chinese, etc.)33    ingredients_raw = Column(Text, nullable=True)  # JSON: Original ingredients from web34    ingredients_mapped = Column(Text, nullable=True)  # JSON: AI-mapped ingredients to inventory35    created_at = Column(DateTime(timezone=True), server_default=func.now())36    updated_at = Column(DateTime(timezone=True), onupdate=func.now())37 38class Task(Base):39    __tablename__ = "tasks"40    41    id = Column(Integer, primary_key=True, index=True)42    recipe = Column(String, nullable=False)43    quantity = Column(Integer, default=1)44    assigned_to = Column(String, default="")45    status = Column(String, default="todo")  # todo, inprogress, completed46    created_at = Column(DateTime(timezone=True), server_default=func.now())47    updated_at = Column(DateTime(timezone=True), onupdate=func.now())48 49class SyncData(Base):50    __tablename__ = "sync_data"51    52    id = Column(Integer, primary_key=True, index=True)53    data_type = Column(String, nullable=False)  # 'full_sync', 'inventory', 'recipes', 'tasks'54    data_content = Column(Text)  # JSON string of synced data55    synced_at = Column(DateTime(timezone=True), server_default=func.now())