"""Server log model for audit trail.""" from datetime import datetime from typing import Optional from app.extensions import db class ServerLog(db.Model): """Server log model for tracking system events. Attributes: id: Primary key level: Log level (info, warning, error) message: Log message content timestamp: Event timestamp """ __tablename__ = 'server_log' id = db.Column(db.Integer, primary_key=True) level = db.Column(db.String(20), nullable=False, index=True, default='info') message = db.Column(db.Text, nullable=False) timestamp = db.Column(db.DateTime, default=datetime.utcnow, nullable=False, index=True) def __repr__(self) -> str: """String representation of ServerLog.""" return f'' @classmethod def log_info(cls, message: str) -> 'ServerLog': """Create an info level log entry. Args: message: Log message Returns: ServerLog instance """ log = cls(level='info', message=message) db.session.add(log) db.session.commit() return log @classmethod def log_warning(cls, message: str) -> 'ServerLog': """Create a warning level log entry. Args: message: Log message Returns: ServerLog instance """ log = cls(level='warning', message=message) db.session.add(log) db.session.commit() return log @classmethod def log_error(cls, message: str) -> 'ServerLog': """Create an error level log entry. Args: message: Log message Returns: ServerLog instance """ log = cls(level='error', message=message) db.session.add(log) db.session.commit() return log