| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- from datetime import datetime
- from typing import Optional
- from pydantic import BaseModel, Field
- # ---------- 请求 ----------
- class CreateDocumentRequest(BaseModel):
- user_id: str = Field(..., alias="userId")
- file_url: str = Field(..., alias="fileUrl")
- session_id: str = Field(..., alias="sessionId")
- model_config = {"populate_by_name": True}
- # ---------- 响应 ----------
- class DocumentResponse(BaseModel):
- id: str
- content_db_path: str = Field(..., serialization_alias="contentDbPath")
- session_id: str = Field(..., serialization_alias="sessionId")
- user_id: Optional[str] = Field(None, serialization_alias="userId")
- created_at: datetime = Field(..., serialization_alias="createdAt")
- updated_at: datetime = Field(..., serialization_alias="updatedAt")
- blocks: list = [] # 可选,用于返回 blocks
- model_config = {"from_attributes": True, "populate_by_name": True}
- class DocumentListItem(BaseModel):
- id: str
- session_id: str = Field(..., serialization_alias="sessionId")
- created_at: datetime = Field(..., serialization_alias="createdAt")
- updated_at: datetime = Field(..., serialization_alias="updatedAt")
- model_config = {"from_attributes": True, "populate_by_name": True}
- class Pagination(BaseModel):
- page: int
- page_size: int = Field(..., serialization_alias="pageSize")
- total: int
- total_pages: int = Field(..., serialization_alias="totalPages")
- model_config = {"populate_by_name": True}
|