2026-06-01 09:25:26 +08:00
|
|
|
from dataclasses import dataclass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
|
|
|
class UserContext:
|
2026-06-03 15:51:46 +08:00
|
|
|
"""用户上下文:承载 Django 用户中心认证后的用户 ID 和入口元数据。"""
|
2026-06-01 09:25:26 +08:00
|
|
|
|
|
|
|
|
user_id: str
|
|
|
|
|
tenant_id: str | None = None
|
|
|
|
|
role: str | None = None
|
|
|
|
|
class_id: str | None = None
|
2026-06-03 15:51:46 +08:00
|
|
|
institution_id: int | None = None
|
|
|
|
|
department_id: int | None = None
|
2026-06-01 09:25:26 +08:00
|
|
|
entry_scene: str | None = None
|
|
|
|
|
request_id: str | None = None
|
|
|
|
|
ip_address: str | None = None
|
|
|
|
|
user_agent: str | None = None
|
2026-06-01 14:28:43 +08:00
|
|
|
username: str | None = None
|
|
|
|
|
display_name: str | None = None
|
2026-06-03 15:51:46 +08:00
|
|
|
phone: str | None = None
|
|
|
|
|
major: str | None = None
|
|
|
|
|
training_stage: str | None = None
|
|
|
|
|
learning_target: str | None = None
|
2026-06-01 17:32:18 +08:00
|
|
|
auth_source: str = "django_user_center"
|
|
|
|
|
profile: dict | None = None
|