Saas-Base / apps /intelligence /models /event_log.py
rsnarsna
first commit
667aacd
Raw
History Blame Contribute Delete
1.27 kB
"""
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}"