from datetime import date, datetime, timezone from sqlalchemy import Date, DateTime, ForeignKey, JSON from sqlalchemy.orm import Mapped, mapped_column, relationship from backend.models.base import Base class DailyDigest(Base): __tablename__ = "daily_digests" id: Mapped[int] = mapped_column(primary_key=True) subreddit_id: Mapped[int] = mapped_column( ForeignKey("monitored_subreddits.id"), nullable=False ) digest_date: Mapped[date] = mapped_column(Date, nullable=False) content: Mapped[str] = mapped_column(nullable=False) metadata_: Mapped[dict | None] = mapped_column("metadata", JSON) generated_at: Mapped[datetime] = mapped_column( DateTime(timezone=True), default=lambda: datetime.now(timezone.utc) ) subreddit: Mapped["MonitoredSubreddit"] = relationship(back_populates="daily_digests") # noqa: F821