import uuid import enum from sqlalchemy import Column, String, Boolean, DateTime, ForeignKey, Enum from sqlalchemy.sql import func from sqlalchemy.orm import relationship from app.core.database import Base class ReportType(str, enum.Enum): WEEKLY = "weekly" class ScheduledReport(Base): __tablename__ = "pjctrl_scheduled_reports" id = Column(String(36), primary_key=True, default=lambda: str(uuid.uuid4())) report_type = Column( Enum("weekly", name="report_type_enum"), nullable=False ) recipient_id = Column(String(36), ForeignKey("pjctrl_users.id", ondelete="CASCADE"), nullable=False) is_active = Column(Boolean, default=True, nullable=False) last_sent_at = Column(DateTime, nullable=True) created_at = Column(DateTime, server_default=func.now(), nullable=False) # Relationships recipient = relationship("User", back_populates="scheduled_reports") history = relationship("ReportHistory", back_populates="report", cascade="all, delete-orphan")