"""suspicious_events table (Chapter 06) — Security section (Ch10).""" from __future__ import annotations from app.extensions import db class SuspiciousEvent(db.Model): __tablename__ = "suspicious_events" id: int = db.Column(db.Integer, primary_key=True) log_file_id: int = db.Column(db.Integer, db.ForeignKey("log_files.id", ondelete="CASCADE"), nullable=False) ip: str = db.Column(db.String(45), nullable=False) timestamp = db.Column(db.DateTime, nullable=False) path: str = db.Column(db.Text, nullable=False) rule_matched: str = db.Column(db.String(128), nullable=False) severity: str = db.Column(db.String(8), nullable=False) # low|medium|high (provisional; Ch10 escalates) __table_args__ = ( db.Index("ix_suspicious_events_timestamp", "timestamp"), db.Index("ix_suspicious_events_ip", "ip"), db.Index("ix_suspicious_events_severity", "severity"), )