26 lines
975 B
Python
26 lines
975 B
Python
from sqlalchemy import Column, Integer, String, Date, Float, ForeignKey, Index, UniqueConstraint
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from app.database import Base
|
|
|
|
|
|
class TrendScore(Base):
|
|
__tablename__ = "trend_scores"
|
|
|
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
bill_id = Column(String, ForeignKey("bills.bill_id", ondelete="CASCADE"), nullable=False)
|
|
score_date = Column(Date, nullable=False)
|
|
newsapi_count = Column(Integer, default=0)
|
|
gnews_count = Column(Integer, default=0)
|
|
gtrends_score = Column(Float, default=0.0)
|
|
composite_score = Column(Float, default=0.0)
|
|
|
|
bill = relationship("Bill", back_populates="trend_scores")
|
|
|
|
__table_args__ = (
|
|
UniqueConstraint("bill_id", "score_date", name="uq_trend_scores_bill_date"),
|
|
Index("ix_trend_scores_bill_id", "bill_id"),
|
|
Index("ix_trend_scores_score_date", "score_date"),
|
|
Index("ix_trend_scores_composite", "composite_score"),
|
|
)
|