Files

30 lines
800 B
Python

from typing import Any
from sqlalchemy.orm import Session
from app.models import AuditEvent
# принимает сессию SQLAlchemy и параметры события (actor_id, client_id, ip, user_agent, metadata);
# создаёт запись AuditEvent и коммитит транзакцию
def write_event(
db: Session,
event_type: str,
actor_id: int | None = None,
client_id: str | None = None,
ip: str | None = None,
user_agent: str | None = None,
metadata: dict[str, Any] | None = None,
) -> AuditEvent:
event = AuditEvent(
event_type=event_type,
actor_id=actor_id,
client_id=client_id,
ip=ip,
user_agent=user_agent,
metadata_json=metadata,
)
db.add(event)
db.commit()
return event