Files
ctms/backend/app/schemas/document_version.py
T
2026-02-04 10:52:34 +08:00

48 lines
1.2 KiB
Python

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
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)