跳转至

数据模型

所有 API 响应均使用 Pydantic v2 模型。

认证

TokenResponse

Bases: BaseModel

登录成功后返回的令牌对。

access_token instance-attribute

access_token: str

访问令牌。

refresh_token instance-attribute

refresh_token: str

刷新令牌。

token_type instance-attribute

token_type: str

令牌类型,通常为 bearer。

expires_in instance-attribute

expires_in: int

访问令牌有效期(秒)。

UserProfile

Bases: BaseModel

用户信息。

user_id instance-attribute

user_id: str

用户 UUID。

username instance-attribute

username: str

用户名。

display_name instance-attribute

display_name: str

显示名称。

role instance-attribute

role: str

角色,如 admin、user、bot。

is_active instance-attribute

is_active: bool

账号是否启用。

leader_expires_at class-attribute instance-attribute

leader_expires_at: datetime | None = None

领队权限过期时间,None 表示无领队权限。

created_at instance-attribute

created_at: datetime

账号创建时间。

updated_at instance-attribute

updated_at: datetime

账号最后更新时间。

分页

PaginatedResponse

Bases: BaseModel, Generic[T]

分页响应。

items instance-attribute

items: list[T]

当前页数据列表。

total instance-attribute

total: int

符合条件的总数。

limit instance-attribute

limit: int

每页数量。

offset instance-attribute

offset: int

偏移量。

题目

QuestionSummary

Bases: BaseModel

题目摘要(列表项)。

question_id instance-attribute

question_id: str

题目 UUID。

source instance-attribute

源文件信息。

category instance-attribute

category: str

分类:none、T(理论)、E(实验)。

status instance-attribute

status: str

状态:none、reviewed、used。

description instance-attribute

description: str

题目描述。

score class-attribute instance-attribute

score: int | None = None

分值。

author class-attribute instance-attribute

author: str = ''

命题人。

reviewers class-attribute instance-attribute

reviewers: list[str] = Field(default_factory=list)

审题人列表。

tags class-attribute instance-attribute

tags: list[str] = Field(default_factory=list)

标签列表。

difficulty class-attribute instance-attribute

difficulty: dict[str, DifficultyValue] = Field(
    default_factory=dict
)

难度评估,key 为评估标签(如 human)。

allow_auto_reviewer class-attribute instance-attribute

allow_auto_reviewer: bool = False

是否允许自动添加审阅人。

created_by class-attribute instance-attribute

created_by: str | None = None

创建者用户 UUID。

created_at instance-attribute

created_at: datetime

创建时间。

updated_at instance-attribute

updated_at: datetime

最后更新时间。

QuestionDetail

Bases: QuestionSummary

题目详情,包含资源和关联试卷。

tex_object_id instance-attribute

tex_object_id: str

TeX 文件对象存储 ID。

assets class-attribute instance-attribute

assets: list[QuestionAssetRef] = Field(default_factory=list)

附属资源列表。

papers class-attribute instance-attribute

papers: list[QuestionPaperRef] = Field(default_factory=list)

所属试卷列表。

QuestionSource

Bases: BaseModel

题目源文件信息。

tex instance-attribute

tex: str

TeX 主文件路径。

DifficultyValue

Bases: BaseModel

难度评估值。

score class-attribute instance-attribute

score: int = Field(ge=1, le=10)

难度分值 (1-10)。

notes class-attribute instance-attribute

notes: str | None = None

备注。

updated_by class-attribute instance-attribute

updated_by: DifficultyUpdatedBy | None = None

最后更新者。

DifficultyUpdatedBy

Bases: BaseModel

难度评估的更新者信息。

user_id instance-attribute

user_id: str

用户 UUID。

username instance-attribute

username: str

用户名。

display_name instance-attribute

display_name: str

显示名称。

QuestionAssetRef

Bases: BaseModel

题目附属资源引用。

path instance-attribute

path: str

资源文件路径。

file_kind instance-attribute

file_kind: str

文件类型。

object_id instance-attribute

object_id: str

对象存储 ID。

mime_type class-attribute instance-attribute

mime_type: str | None = None

MIME 类型。

QuestionPaperRef

Bases: BaseModel

题目所属试卷的引用。

paper_id instance-attribute

paper_id: str

试卷 UUID。

description instance-attribute

description: str

试卷描述。

title instance-attribute

title: str

试卷标题。

subtitle instance-attribute

subtitle: str

试卷副标题。

sort_order instance-attribute

sort_order: int

题目在试卷中的排序。

QuestionCreateResult

Bases: BaseModel

题目创建结果。

question_id instance-attribute

question_id: str

新创建的题目 UUID。

file_name instance-attribute

file_name: str

上传的文件名。

imported_assets instance-attribute

imported_assets: int

导入的资源数量。

status instance-attribute

status: str

题目状态。

QuestionFileReplaceResult

Bases: BaseModel

题目文件替换结果。

question_id instance-attribute

question_id: str

题目 UUID。

file_name instance-attribute

file_name: str

新文件名。

source_tex_path instance-attribute

source_tex_path: str

TeX 主文件路径。

imported_assets instance-attribute

imported_assets: int

导入的资源数量。

status instance-attribute

status: str

题目状态。

QuestionDeleteResult

Bases: BaseModel

题目删除结果。

question_id instance-attribute

question_id: str

题目 UUID。

status instance-attribute

status: str

删除后状态。

审阅人

ReviewerInfo

Bases: BaseModel

审阅人信息。

reviewer_id instance-attribute

reviewer_id: str

审阅人用户 UUID。

username instance-attribute

username: str

用户名。

display_name instance-attribute

display_name: str

显示名称。

assigned_by instance-attribute

assigned_by: str

分配者用户 UUID。

created_at instance-attribute

created_at: datetime

分配时间。

ReviewersResponse

Bases: BaseModel

审阅人列表响应。

reviewers instance-attribute

reviewers: list[ReviewerInfo]

审阅人列表。

试卷

PaperSummary

Bases: BaseModel

试卷摘要(列表项)。

paper_id instance-attribute

paper_id: str

试卷 UUID。

description instance-attribute

description: str

试卷描述。

title instance-attribute

title: str

试卷标题。

subtitle instance-attribute

subtitle: str

试卷副标题。

question_count instance-attribute

question_count: int

包含题目数量。

created_by class-attribute instance-attribute

created_by: str | None = None

创建者用户 UUID。

created_at instance-attribute

created_at: datetime

创建时间。

updated_at instance-attribute

updated_at: datetime

最后更新时间。

PaperDetail

Bases: BaseModel

试卷详情,包含题目列表。

paper_id instance-attribute

paper_id: str

试卷 UUID。

description instance-attribute

description: str

试卷描述。

title instance-attribute

title: str

试卷标题。

subtitle instance-attribute

subtitle: str

试卷副标题。

created_by class-attribute instance-attribute

created_by: str | None = None

创建者用户 UUID。

created_at instance-attribute

created_at: datetime

创建时间。

updated_at instance-attribute

updated_at: datetime

最后更新时间。

questions class-attribute instance-attribute

questions: list[QuestionSummary] = Field(
    default_factory=list
)

包含的题目列表。

PaperCreateResult

Bases: BaseModel

试卷创建结果。

paper_id instance-attribute

paper_id: str

新创建的试卷 UUID。

file_name class-attribute instance-attribute

file_name: str | None = None

附录文件名(无附录时为 None)。

status instance-attribute

status: str

试卷状态。

question_count instance-attribute

question_count: int

包含题目数量。

PaperFileReplaceResult

Bases: BaseModel

试卷附录文件替换结果。

paper_id instance-attribute

paper_id: str

试卷 UUID。

file_name instance-attribute

file_name: str

新附录文件名。

status instance-attribute

status: str

替换状态。

PaperDeleteResult

Bases: BaseModel

试卷删除结果。

paper_id instance-attribute

paper_id: str

试卷 UUID。

status instance-attribute

status: str

删除后状态。

系统

HealthResponse

Bases: BaseModel

健康检查响应。

status instance-attribute

status: str

服务状态,正常为 ok。

service instance-attribute

service: str

服务名称。

VersionResponse

Bases: BaseModel

后端版本响应。

version instance-attribute

version: str

后端语义化版本号。

MessageResponse

Bases: BaseModel

通用消息响应。

message instance-attribute

message: str

消息内容。