Skip to content

Commit 99870de

Browse files
committed
add catalogProduct table
1 parent d6c2da9 commit 99870de

1 file changed

Lines changed: 37 additions & 1 deletion

File tree

models/base.py

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from random import choice
55

66
from passlib.hash import pbkdf2_sha256 as sha256
7-
from sqlalchemy import Boolean, Column, ForeignKey, Integer, DATE, String, DateTime, TIMESTAMP, func, \
7+
from sqlalchemy import Boolean, Column, ForeignKey, Index, Integer, JSON, DATE, String, DateTime, TIMESTAMP, func, \
88
Numeric, UniqueConstraint, UUID
99
from sqlalchemy.ext.declarative import declarative_base, declared_attr
1010
from sqlalchemy.ext.hybrid import hybrid_property
@@ -204,6 +204,42 @@ class ProductVariant(Base):
204204
'name', 'product_id', name='uc_name_product_id'),)
205205

206206

207+
class CatalogProduct(Base):
208+
id = Column(Integer, primary_key=True, index=True)
209+
210+
brand_name = Column(String(100), nullable=False, index=True)
211+
product_name = Column(String(250), nullable=False)
212+
variant_name = Column(String(250))
213+
display_name = Column(String(500), nullable=False)
214+
215+
weight = Column(Numeric)
216+
weight_unit = Column(String(10))
217+
product_url = Column(String(1000))
218+
description = Column(String(2000))
219+
image_url = Column(String(1000))
220+
category_suggestion = Column(String(100))
221+
catalog_url_slug = Column(String(500))
222+
additional_specs = Column(JSON)
223+
224+
brand_id = Column(Integer, ForeignKey("brand.id"))
225+
product_id = Column(Integer, ForeignKey("product.id"))
226+
product_variant_id = Column(Integer, ForeignKey("productvariant.id"))
227+
228+
status = Column(String(20), default="pending", index=True)
229+
source_item_count = Column(Integer)
230+
ai_confidence = Column(Numeric)
231+
232+
created_at = Column(
233+
DateTime, default=datetime.datetime.utcnow, nullable=False)
234+
updated_at = Column(TIMESTAMP, server_default=func.now())
235+
236+
__table_args__ = (
237+
UniqueConstraint('brand_name', 'product_name', 'variant_name',
238+
name='uq_catalog_brand_product_variant'),
239+
Index('ix_catalog_search', 'status', 'brand_name', 'product_name'),
240+
)
241+
242+
207243
class PackItem(Base):
208244
pack_id = Column(Integer, ForeignKey("pack.id"), primary_key=True)
209245
item_id = Column(Integer, ForeignKey("item.id"), primary_key=True)

0 commit comments

Comments
 (0)