""" 报告数据模型 """ from sqlalchemy import Column, String, DateTime, Text, Index from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.sql import func from sqlalchemy.orm import relationship import uuid from ..core.database import Base class Report(Base): """报告表模型""" __tablename__ = "reports" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) symbol = Column(String(20), nullable=False, comment="证券代码") market = Column(String(20), nullable=False, comment="交易市场") status = Column(String(20), nullable=False, default="generating", comment="报告状态") created_at = Column(DateTime(timezone=True), server_default=func.now(), comment="创建时间") updated_at = Column(DateTime(timezone=True), server_default=func.now(), onupdate=func.now(), comment="更新时间") # 关系 analysis_modules = relationship("AnalysisModule", back_populates="report", cascade="all, delete-orphan") progress_tracking = relationship("ProgressTracking", back_populates="report", cascade="all, delete-orphan") # 索引 __table_args__ = ( Index('idx_report_symbol_market', 'symbol', 'market'), Index('idx_report_status', 'status'), Index('idx_report_created_at', 'created_at'), ) def __repr__(self): return f""