Spaces:
Sleeping
Sleeping
File size: 1,413 Bytes
ba2fc46 370480b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | # backend/src/models/ingestion.py
from sqlalchemy import Column, Integer, String, Text, DateTime, Enum, JSON # <--- JSON import karein
from sqlalchemy.sql import func
import enum
from backend.src.db.base import Base
class JobStatus(str, enum.Enum):
PENDING = "pending"
PROCESSING = "processing"
COMPLETED = "completed"
FAILED = "failed"
class IngestionType(str, enum.Enum):
URL = "url"
ZIP = "zip"
FILE = "file" # (Future use ke liye)
class IngestionJob(Base):
__tablename__ = "ingestion_jobs"
id = Column(Integer, primary_key=True, index=True)
session_id = Column(String, index=True)
# --- NEW COLUMNS ---
ingestion_type = Column(String, default=IngestionType.URL) # Taake pata chale ye URL hai ya Zip
source_name = Column(String, nullable=False) # Ye URL ya Zip file ka naam hoga
status = Column(String, default=JobStatus.PENDING)
# Progress Tracking
items_processed = Column(Integer, default=0)
total_items = Column(Integer, default=0)
# Detailed Logging
details = Column(JSON, default=[]) # <--- Har file ka result yahan aayega
error_message = Column(Text, nullable=True)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
# 'url', 'crawl_type' waghaira columns hata diye taake table generic rahe |