46 lines
2.3 KiB
Python
46 lines
2.3 KiB
Python
"""资料导入 API schema(api-spec §8)。"""
|
||
|
||
from typing import Any
|
||
|
||
from pydantic import BaseModel, Field
|
||
|
||
|
||
class CreateImportRequest(BaseModel):
|
||
"""JSON 提交导入(粘贴文本 / 结构化消息 / 手动设定)。"""
|
||
|
||
material_type: str = Field(description="资料类型,取值见契约字典 §10.1。")
|
||
format: str = Field(default="text", description="格式:text / json / markdown 等。")
|
||
content: str = Field(min_length=1, description="资料正文。")
|
||
title: str | None = Field(default=None, description="可选标题。")
|
||
source_note: str | None = Field(default=None, description="资料来源说明。")
|
||
|
||
|
||
class ImportItemResponse(BaseModel):
|
||
id: str = Field(description="条目 ID,前缀 import_item_。")
|
||
import_job_id: str = Field(description="所属导入任务 ID。")
|
||
item_type: str = Field(description="条目类型,契约字典 §10.4。")
|
||
role: str = Field(description="条目角色,契约字典 §10.5。")
|
||
sequence: int = Field(description="条目序号。")
|
||
content: str = Field(description="条目正文。")
|
||
metadata: dict[str, Any] = Field(default_factory=dict, description="条目附加元数据。")
|
||
created_at: str = Field(description="创建时间,UTC ISO 8601 字符串。")
|
||
|
||
|
||
class ImportJobResponse(BaseModel):
|
||
id: str = Field(description="导入任务 ID,前缀 import_。")
|
||
character_id: str = Field(description="所属人物 ID。")
|
||
material_type: str = Field(description="资料类型。")
|
||
source_type: str = Field(description="导入来源类型,契约字典 §10.2。")
|
||
title: str | None = Field(default=None)
|
||
status: str = Field(description="任务状态,契约字典 §10.3。")
|
||
format: str = Field(description="资料格式。")
|
||
media_type: str | None = Field(default=None)
|
||
mime_type: str | None = Field(default=None)
|
||
item_count: int = Field(description="解析出的条目数。")
|
||
consent_status: str = Field(description="授权状态。")
|
||
usage_scope: str = Field(description="用途范围。")
|
||
error_code: str | None = Field(default=None)
|
||
error_message: str | None = Field(default=None)
|
||
created_at: str = Field(description="创建时间,UTC ISO 8601 字符串。")
|
||
updated_at: str = Field(description="更新时间,UTC ISO 8601 字符串。")
|