from django.db import models class BackgroundTask(models.Model): class Meta: db_table = 'bg_remover_background_tasks' STATUS_CHOICES = [ ('PENDING', 'Pending'), ('PROCESSING', 'Processing'), ('COMPLETED', 'Completed'), ('FAILED', 'Failed'), ] TASK_TYPE_CHOICES = [ ('BG_REMOVE', 'Background Removal'), ('CAPTION', 'Image Captioning'), # future: # ('UPSCALE', 'Image Upscaling'), # ('VQA', 'Visual Q&A'), ] task_id = models.UUIDField(unique=True, editable=False) task_type = models.CharField( max_length=20, choices=TASK_TYPE_CHOICES, default='BG_REMOVE' ) status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='PENDING') zip_file = models.FileField(upload_to='bulk_results/', null=True, blank=True) created_at = models.DateTimeField(auto_now_add=True) error_message = models.TextField(null=True, blank=True) def __str__(self): return f"Task {self.task_type} - {self.task_id} - {self.status}"