from contextvars import ContextVar # Variable de contexto única por cada Request de FastAPI request_id_ctx: ContextVar[str] = ContextVar("request_id", default="-") # Variable de contexto para el empleado conectado que originó la petición current_user_ctx: ContextVar[dict] = ContextVar( "current_user", default={"webUser": "-", "emp_id": "-", "full_name": "-"} ) # ============================================================================ def get_request_id() -> str: """ Obtiene el ID de la petición del contexto actual. """ return request_id_ctx.get() # ============================================================================ def set_request_id(request_id: str): """ Establece el ID de la petición en el contexto actual. """ request_id_ctx.set(request_id) # ============================================================================ def get_current_user() -> dict: """ Obtiene el empleado conectado del contexto actual. """ return current_user_ctx.get() # ============================================================================ def set_current_user(webUser: str, full_name: str = "", emp_id="-"): """ Establece el empleado conectado en el contexto actual. """ current_user_ctx.set({"webUser": webUser, "emp_id": emp_id, "full_name": full_name}) # ============================================================================