import uuid from sqlalchemy import Column, String, Text, Boolean, DateTime, ForeignKey, JSON from sqlalchemy.sql import func from sqlalchemy.orm import relationship from app.core.database import Base class AuditAlert(Base): __tablename__ = "pjctrl_audit_alerts" id = Column(String(36), primary_key=True, default=lambda: str(uuid.uuid4())) audit_log_id = Column(String(36), ForeignKey("pjctrl_audit_logs.id", ondelete="CASCADE"), nullable=False) alert_type = Column(String(50), nullable=False) recipients = Column(JSON, nullable=False) message = Column(Text, nullable=True) is_acknowledged = Column(Boolean, default=False, nullable=False) acknowledged_by = Column(String(36), ForeignKey("pjctrl_users.id", ondelete="SET NULL"), nullable=True) acknowledged_at = Column(DateTime, nullable=True) created_at = Column(DateTime, server_default=func.now(), nullable=False) # Relationships audit_log = relationship("AuditLog", back_populates="alerts") acknowledger = relationship("User", foreign_keys=[acknowledged_by])