文件版本管理-初步优化
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
import enum
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, ConfigDict
|
||||
|
||||
|
||||
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
|
||||
effective_at: Optional[datetime] = None
|
||||
|
||||
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
|
||||
file_hash: str
|
||||
file_size: int
|
||||
mime_type: Optional[str] = None
|
||||
change_summary: Optional[str] = None
|
||||
created_by: Optional[uuid.UUID] = 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)
|
||||
|
||||
|
||||
class VersionSubmitRequest(BaseModel):
|
||||
template_id: uuid.UUID
|
||||
comment: Optional[str] = None
|
||||
|
||||
|
||||
class VersionActionRequest(BaseModel):
|
||||
comment: Optional[str] = None
|
||||
Reference in New Issue
Block a user