from sqlalchemy import Column, Integer, String, Text, Float, DateTime, ForeignKey, Index, UniqueConstraint from sqlalchemy.orm import relationship from sqlalchemy.sql import func from app.database import Base class NewsArticle(Base): __tablename__ = "news_articles" id = Column(Integer, primary_key=True, autoincrement=True) bill_id = Column(String, ForeignKey("bills.bill_id", ondelete="CASCADE"), nullable=False) source = Column(String(200)) headline = Column(Text) url = Column(String) published_at = Column(DateTime(timezone=True)) relevance_score = Column(Float, default=0.0) created_at = Column(DateTime(timezone=True), server_default=func.now()) bill = relationship("Bill", back_populates="news_articles") __table_args__ = ( UniqueConstraint("bill_id", "url", name="uq_news_articles_bill_url"), Index("ix_news_articles_bill_id", "bill_id"), Index("ix_news_articles_published_at", "published_at"), )