""" EventLog model — general-purpose audit/activity event log. Maps to AGENT.md DBML: `event_log` table (Lines 494-503). """ from django.conf import settings from django.db import models from core.models import BaseModel class EventLog(BaseModel): """ Stores any significant event in the platform. Used for analytics, security monitoring, and audit trails. """ actor_user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True, related_name="event_logs", ) org = models.ForeignKey( "organizations.Organization", on_delete=models.SET_NULL, null=True, blank=True, related_name="event_logs", ) event_type = models.CharField(max_length=100, db_index=True) metadata = models.JSONField(default=dict, blank=True) ip_address = models.GenericIPAddressField(null=True, blank=True) user_agent = models.TextField(blank=True, default="") class Meta: db_table = "event_log" ordering = ["-created_at"] indexes = [ models.Index(fields=["event_type", "created_at"]), ] def __str__(self) -> str: return f"{self.event_type} by {self.actor_user_id}"