"""Revision API schemas.""" from datetime import datetime from pydantic import BaseModel from app.domain.enums import ReviewDecision, ReviewTaskStatus class RegisterRevisionRequest(BaseModel): """Request payload for registering a manual revision asset.""" parent_asset_id: int uploaded_uri: str reviewer_id: int comment: str | None = None class RegisterRevisionResponse(BaseModel): """Response returned after a manual revision has been registered.""" order_id: int workflow_id: str asset_id: int parent_asset_id: int root_asset_id: int version_no: int review_task_status: ReviewTaskStatus latest_revision_asset_id: int revision_count: int class RevisionChainItem(BaseModel): """One item in the manual revision chain.""" asset_id: int order_id: int parent_asset_id: int | None root_asset_id: int | None version_no: int is_current_version: bool uri: str created_at: datetime class RevisionChainResponse(BaseModel): """Response returned when listing a revision chain.""" order_id: int latest_revision_asset_id: int | None = None revision_count: int = 0 items: list[RevisionChainItem] class ConfirmRevisionRequest(BaseModel): """Request payload for confirming a manual revision.""" reviewer_id: int comment: str | None = None class ConfirmRevisionResponse(BaseModel): """Response returned after confirming a manual revision.""" order_id: int workflow_id: str revision_asset_id: int decision: ReviewDecision status: str