35 lines
737 B
Python
35 lines
737 B
Python
"""Version checkpoint schemas."""
|
|
|
|
from datetime import datetime
|
|
from typing import Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from app.schemas.annotations import AnnotationPayload
|
|
|
|
|
|
class VersionCreateRequest(BaseModel):
|
|
label: str | None = Field(default=None, max_length=120)
|
|
kind: Literal["manual", "auto"] = "manual"
|
|
|
|
|
|
class VersionMeta(BaseModel):
|
|
id: str
|
|
documentId: str
|
|
label: str | None
|
|
kind: Literal["manual", "auto"]
|
|
createdAt: datetime
|
|
annotationCount: int
|
|
|
|
|
|
class VersionListResponse(BaseModel):
|
|
items: list[VersionMeta]
|
|
|
|
|
|
class VersionDataResponse(BaseModel):
|
|
data: list[AnnotationPayload]
|
|
meta: VersionMeta
|
|
|
|
|
|
class VersionRestoreResponse(BaseModel):
|
|
updatedAt: datetime
|