Spaces:
Running
Running
| 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") | |