Files
sriphat-dataplatform/03-apiservice/app/models/upload.py

34 lines
1.2 KiB
Python

"""
Upload History model for tracking file uploads
"""
from sqlalchemy import Column, Integer, String, DateTime, Text
from sqlalchemy.sql import func
from app.db.base import Base
class UploadHistory(Base):
"""
Upload history tracking
Stores information about uploaded files and their processing status
"""
__tablename__ = "upload_history"
__table_args__ = {'schema': 'fastapi'}
id = Column(Integer, primary_key=True, index=True)
upload_id = Column(String, unique=True, index=True, nullable=False)
filename = Column(String, nullable=False)
filepath = Column(String, nullable=False)
description = Column(Text)
status = Column(String, default="pending")
job_id = Column(String)
logs = Column(Text)
uploaded_by = Column(String)
uploaded_at = Column(DateTime(timezone=True), server_default=func.now(), nullable=False)
updated_at = Column(DateTime(timezone=True), onupdate=func.now())
airflow_dag_run_id = Column(String)
airflow_state = Column(String)
processing_started_at = Column(DateTime(timezone=True))
processing_completed_at = Column(DateTime(timezone=True))
error_message = Column(Text)