"""Step2-岗位列表分析任务表""" from datetime import datetime from sqlalchemy import BigInteger, String, Integer, DateTime, Text from sqlalchemy.orm import Mapped, mapped_column from src.database.base import Base class TaskPageAnalysis(Base): """岗位列表分析任务表 app_task_page_analysis""" __tablename__ = "app_task_page_analysis" id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True) crawl_task_id: Mapped[int] = mapped_column(BigInteger, nullable=False, index=True) status: Mapped[str] = mapped_column(String(32), default="pending", index=True) retry_count: Mapped[int] = mapped_column(Integer, default=0) max_retry: Mapped[int] = mapped_column(Integer, default=1) # 输入 input_url: Mapped[str] = mapped_column(String(1024), nullable=False) # 输出 output_selector: Mapped[str | None] = mapped_column(String(512), default=None) output_change_type: Mapped[str | None] = mapped_column(String(32), default=None) output_item_count: Mapped[int | None] = mapped_column(Integer, default=None) error_message: Mapped[str | None] = mapped_column(Text, default=None) started_at: Mapped[datetime | None] = mapped_column(DateTime, default=None) finished_at: Mapped[datetime | None] = mapped_column(DateTime, default=None) created_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now) updated_at: Mapped[datetime] = mapped_column(DateTime, default=datetime.now, onupdate=datetime.now)