Spaces:
Sleeping
Sleeping
| class ProcessingTask(Base): | |
| """Background processing tasks table""" | |
| __tablename__ = 'processing_tasks' | |
| task_id = Column(String(36), primary_key=True) # UUID | |
| status = Column(String(20), default='queued') # queued, processing, completed, failed | |
| progress = Column(Float, default=0.0) | |
| filename = Column(String(255), nullable=False) | |
| created_at = Column(DateTime, default=datetime.now) | |
| updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now) | |
| completion_time = Column(DateTime, nullable=True) | |
| # Task metadata/results | |
| user_email = Column(String(100), nullable=True) | |
| user_department = Column(String(100), nullable=True) | |
| # Store results/errors as JSON | |
| results = Column(JSON, nullable=True) | |
| error = Column(String, nullable=True) | |
| # Execution stats | |
| current_frame = Column(Integer, default=0) | |
| total_frames = Column(Integer, default=0) | |
| def to_dict(self): | |
| return { | |
| 'task_id': self.task_id, | |
| 'status': self.status, | |
| 'progress': self.progress, | |
| 'filename': self.filename, | |
| 'created_at': self.created_at.isoformat() if self.created_at else None, | |
| 'updated_at': self.updated_at.isoformat() if self.updated_at else None, | |
| 'completion_time': self.completion_time.isoformat() if self.completion_time else None, | |
| 'results': self.results, | |
| 'error': self.error, | |
| 'current_frame': self.current_frame, | |
| 'total_frames': self.total_frames | |
| } | |