from sqlmodel import Field, SQLModel from app.models.mixins import timestamp class AnalysisTask(SQLModel, table=True): __tablename__ = "analysis_tasks" id: str = Field(primary_key=True) project_id: str = Field(foreign_key="projects.id", nullable=False, index=True) analysis_type: str = Field(nullable=False) parameters_json: str = Field(default="{}", nullable=False) status: str = Field(default="pending", nullable=False) result_json: str | None = Field(default=None) error_message: str = Field(default="", nullable=False) script_path: str = Field(default="", nullable=False) workspace_path: str = Field(default="", nullable=False) created_at: str = Field(default_factory=timestamp, nullable=False) completed_at: str | None = Field(default=None)