from datetime import datetime from sqlalchemy import DateTime, ForeignKey, Integer, String, Text from sqlalchemy.orm import Mapped, mapped_column, relationship from app.database import Base class SentimentScore(Base): __tablename__ = "sentiment_scores" id: Mapped[int] = mapped_column(primary_key=True) ticker_id: Mapped[int] = mapped_column( ForeignKey("tickers.id", ondelete="CASCADE"), nullable=False ) classification: Mapped[str] = mapped_column(String(20), nullable=False) confidence: Mapped[int] = mapped_column(Integer, nullable=False) source: Mapped[str] = mapped_column(String(100), nullable=False) timestamp: Mapped[datetime] = mapped_column( DateTime(timezone=True), nullable=False ) reasoning: Mapped[str] = mapped_column(Text, nullable=False, default="") citations_json: Mapped[str] = mapped_column(Text, nullable=False, default="[]") ticker = relationship("Ticker", back_populates="sentiment_scores")