from datetime import datetime
from database import db
import uuid

async def log_action(
    action: str,
    collection: str,
    document_id: str,
    user: dict,
    before: dict = None,
    after: dict = None,
    operation_id: str = None
):
    log_entry = {
        "timestamp": datetime.utcnow(),
        "action": action,
        "collection": collection,
        "document_id": document_id or "N/A",
        "user_email": user.get("email"),
        "user_role": user.get("role"),
        "operation_id": operation_id or str(uuid.uuid4()),  # genera uno si no se pasa
        "details": {
            "before": before,
            "after": after
        }
    }
    await db.logs.insert_one(log_entry)
