Files
ctms/backend/app/schemas/document_version.py
T
Cheng Zhou 44db5db838
Client Quality Gates / Shared client and Web (push) Has been cancelled
Client Quality Gates / macOS Desktop (push) Has been cancelled
功能(文档与桌面):完善文件预览下载与客户端构建基线
- 保存文档版本原始文件名,规范下载响应并持久化上传目录\n- 增加 PDF.js 预览、桌面保存打开流程及统一错误反馈\n- 统一 Node.js 22.13 构建基线并收紧临时文件权限门禁\n- 补充迁移、单元测试、发布检查与运维文档
2026-07-13 18:40:48 +08:00

52 lines
1.3 KiB
Python

import enum
import uuid
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
from app.schemas.user import UserDisplay
class DocumentVersionStatus(str, enum.Enum):
DRAFT = "DRAFT"
SUBMITTED = "SUBMITTED"
APPROVED = "APPROVED"
EFFECTIVE = "EFFECTIVE"
SUPERSEDED = "SUPERSEDED"
ARCHIVED = "ARCHIVED"
WITHDRAWN = "WITHDRAWN"
class DocumentVersionSummary(BaseModel):
id: uuid.UUID
version_no: str
status: DocumentVersionStatus
model_config = ConfigDict(from_attributes=True)
class DocumentVersionRead(BaseModel):
id: uuid.UUID
document_id: uuid.UUID
version_no: str
parent_version_id: Optional[uuid.UUID] = None
derived_from_version_id: Optional[uuid.UUID] = None
status: DocumentVersionStatus
effective_at: Optional[datetime] = None
superseded_at: Optional[datetime] = None
file_uri: str
original_filename: Optional[str] = None
file_hash: str
file_size: int
mime_type: Optional[str] = None
change_summary: Optional[str] = None
created_by: Optional[uuid.UUID] = None
created_by_user: Optional[UserDisplay] = None
submitted_at: Optional[datetime] = None
approved_at: Optional[datetime] = None
withdrawn_at: Optional[datetime] = None
created_at: datetime
model_config = ConfigDict(from_attributes=True)