from datetime import datetime, timezone from typing import Optional from uuid import uuid4 from app.internal import firestore as fstore async def write_audit( actor_uid: str, actor_email: str, action: str, target_uid: Optional[str] = None, target_email: Optional[str] = None, details: Optional[dict] = None, ) -> None: """Write an entry to the audit_log collection.""" doc_id = str(uuid4()) await fstore.doc_set("audit_log", doc_id, { "log_id": doc_id, "action": action, "actor_uid": actor_uid, "actor_email": actor_email, "target_uid": target_uid, "target_email": target_email, "details": details or {}, "timestamp": datetime.now(timezone.utc).isoformat(), }, merge=False)