"""爬虫任务主表""" from datetime import datetime from sqlalchemy import BigInteger, String, Integer, DateTime from sqlalchemy.orm import Mapped, mapped_column from src.database.base import Base class CrawlTask(Base): """爬虫任务主表 app_crawl_task""" __tablename__ = "app_crawl_task" id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=True) company_name: Mapped[str] = mapped_column(String(255), nullable=False, unique=True) # 配置阶段 config_step: Mapped[int] = mapped_column(Integer, default=1) config_status: Mapped[str] = mapped_column(String(32), default="pending") # 爬取阶段 crawl_status: Mapped[str | None] = mapped_column(String(32), default=None) total_crawl_times: Mapped[int] = mapped_column(Integer, default=0) last_crawl_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)