Files
ForbiddenStarsApp/backend/app/services/audit_service.py

34 lines
875 B
Python

"""Журнал аудита: запись действий, изменяющих состояние."""
from __future__ import annotations
from typing import Any
from sqlmodel import Session
from app.models import AuditLog
def record(
session: Session,
*,
actor_id: int | None,
action: str,
entity_type: str,
entity_id: int | None = None,
payload: dict[str, Any] | None = None,
ip: str | None = None,
user_agent: str | None = None,
) -> None:
"""Добавляет запись аудита в сессию (commit — на стороне вызывающего)."""
session.add(
AuditLog(
actor_id=actor_id,
action=action,
entity_type=entity_type,
entity_id=entity_id,
payload=payload,
ip=ip,
user_agent=user_agent,
)
)