export.py 1.2 KB

123456789101112131415161718192021222324
  1. from typing import Literal, Optional
  2. from pydantic import BaseModel, Field
  3. class ExportDocRequest(BaseModel):
  4. file_name: str = Field(..., alias="fileName", max_length=255, description="文件名(不含扩展名)")
  5. format: Literal["doc"] = Field(..., description="阶段 0 固定为 doc")
  6. content: str = Field(..., description="文档当前内容(Markdown)")
  7. document_id: Optional[str] = Field(None, alias="documentId", description="关联文档 ID,传入时同步更新草稿")
  8. # 阶段 0 暂不生效,后端固定使用 default.json;阶段 1 起传入有效 ID 则使用用户上传的样式
  9. style_id: Optional[str] = Field(None, alias="styleId", description="样式 ID;不传时使用默认样式")
  10. model_config = {"populate_by_name": True}
  11. class ExportDocResponse(BaseModel):
  12. download_url: str = Field(..., serialization_alias="downloadUrl")
  13. file_name: str = Field(..., serialization_alias="fileName")
  14. expires_at: int = Field(..., serialization_alias="expiresAt", description="Unix 毫秒时间戳")
  15. style_id: str = Field(..., serialization_alias="styleId", description="实际使用的样式 ID")
  16. model_config = {"populate_by_name": True}