"""请求上下文:当前用户。"""
from __future__ import annotations
from contextvars import ContextVar
from typing import Any
_current_user: ContextVar[dict[str, Any] | None] = ContextVar("current_user", default=None)
_current_thread_id: ContextVar[str | None] = ContextVar("current_thread_id", default=None)
def set_current_user(user: dict[str, Any] | None) -> None:
_current_user.set(user)
def get_current_user() -> dict[str, Any] | None:
return _current_user.get()
def get_user_id() -> str | None:
user = get_current_user()
return str(user["id"]) if user and user.get("id") else None
def set_current_thread_id(thread_id: str | None) -> None:
_current_thread_id.set(thread_id)
def get_current_thread_id() -> str | None:
tid = _current_thread_id.get()
return str(tid).strip() if tid else None