mata01's picture
feat: integrate local CatVTON virtual try-on and secure env files
9a36956
Raw
History Blame Contribute Delete
1.24 kB
from sqlalchemy import Column, String, DateTime, func, ForeignKey, Text
from sqlalchemy.dialects.postgresql import UUID, ARRAY
from sqlalchemy.orm import relationship
from app.core.database import Base
import uuid
class TryOnTask(Base):
__tablename__ = "try_on_tasks"
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
user_id = Column(UUID(as_uuid=True), ForeignKey("users.id", ondelete="CASCADE"), nullable=False)
garment_item_id = Column(UUID(as_uuid=True), ForeignKey("wardrobe_items.id", ondelete="CASCADE"), nullable=True)
garment_item_ids = Column(ARRAY(UUID(as_uuid=True)), nullable=True)
status = Column(String(20), nullable=False, default="PENDING") # PENDING, PROCESSING, SUCCESS, FAILED
result_url = Column(String(512), nullable=True)
person_image_url = Column(String(512), nullable=True)
error_message = Column(Text, nullable=True)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now())
# Relationships
user = relationship("User", back_populates="try_on_tasks")
garment_item = relationship("WardrobeItem", back_populates="try_on_tasks")