models.py

 avatar
unknown
python
a year ago
2.5 kB
4
Indexable
from sqlalchemy import Column, Integer, String, Boolean, Text, ForeignKey, JSON, Time, DECIMAL
from sqlalchemy.orm import relationship
from .database import Base

# Existing Models...

class Variant(Base):
    __tablename__ = 'variants'
    id = Column(Integer, primary_key=True, index=True)
    productId = Column(Integer, ForeignKey('products.id'))
    titleEn = Column(String)
    titleAr = Column(String)
    selIndex = Column(Integer)
    subtitleEn = Column(String)
    subtitleAr = Column(String)
    
    product = relationship("Product", back_populates="variants")
    options = relationship("VariantOption", back_populates="variant")

class VariantOption(Base):
    __tablename__ = 'variant_options'
    id = Column(Integer, primary_key=True, index=True)
    variantId = Column(Integer, ForeignKey('variants.id'))
    titleEn = Column(String)
    titleAr = Column(String)
    isSelected = Column(Boolean)
    
    variant = relationship("Variant", back_populates="options")

# Update the Product model to include variants
class Product(Base):
    __tablename__ = 'products'
    id = Column(Integer, primary_key=True, index=True)
    titleEn = Column(String)
    titleAr = Column(String)
    descriptionEn = Column(Text)
    descriptionAr = Column(Text)
    customizable = Column(Boolean)
    sequenceOrder = Column(Integer)
    price = Column(DECIMAL)
    specialPrice = Column(DECIMAL)
    strikeOutPrice = Column(DECIMAL)
    discountPrecentage = Column(Integer)
    selectedItemId = Column(Integer)
    type = Column(String)
    displayDateConfig = Column(JSON)
    selectedValue = Column(Integer)
    itemType = Column(String)
    limited_offer = Column(Boolean)
    spicyOutConfig = Column(String)
    taxClassId = Column(Integer)
    lucky_day = Column(String)
    lucky_date_everymonth = Column(String)
    last_weak_everymonth = Column(String)
    lucky_type = Column(String)
    status = Column(Boolean)
    qrcode = Column(Text)
    
    categories = relationship("CategoryProduct", back_populates="product")
    services = relationship("Service", back_populates="product")
    display_times = relationship("DisplayTimeRange", back_populates="product")
    steps = relationship("Step", back_populates="product")
    variants = relationship("Variant", back_populates="product")  # New relationship
    products = relationship("Product", backref="parent_product")  # Relationship for sub-products
Editor is loading...
Leave a Comment