42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
"""Review API schemas."""
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel
|
|
|
|
from app.domain.enums import ReviewDecision, ReviewTaskStatus, WorkflowStepName
|
|
|
|
|
|
class SubmitReviewRequest(BaseModel):
|
|
"""Request payload for review submission."""
|
|
|
|
decision: ReviewDecision
|
|
reviewer_id: int
|
|
selected_asset_id: int | None = None
|
|
comment: str | None = None
|
|
|
|
|
|
class SubmitReviewResponse(BaseModel):
|
|
"""Response returned after a review signal is sent."""
|
|
|
|
order_id: int
|
|
workflow_id: str
|
|
decision: ReviewDecision
|
|
status: str
|
|
|
|
|
|
class PendingReviewResponse(BaseModel):
|
|
"""Response model for pending review items."""
|
|
|
|
review_task_id: int
|
|
order_id: int
|
|
workflow_id: str
|
|
current_step: WorkflowStepName | None
|
|
review_task_status: ReviewTaskStatus = ReviewTaskStatus.PENDING
|
|
latest_revision_asset_id: int | None = None
|
|
current_revision_asset_id: int | None = None
|
|
latest_revision_version: int | None = None
|
|
revision_count: int = 0
|
|
pending_manual_confirm: bool = False
|
|
created_at: datetime
|