import type { PendingReviewResponseDto, SubmitReviewResponseDto, } from "@/lib/types/backend"; import { getOrderStatusMeta, getReviewDecisionMeta, getWorkflowStepMeta, } from "@/lib/types/status"; import { businessEmptyState, READY_STATE, type ReviewQueueItemVM, type ReviewQueueVM, type ReviewSubmissionVM, } from "@/lib/types/view-models"; function adaptPendingReviewItem( review: PendingReviewResponseDto, ): ReviewQueueItemVM { return { reviewTaskId: review.review_task_id, orderId: review.order_id, workflowId: review.workflow_id, workflowType: null, currentStep: review.current_step, currentStepLabel: getWorkflowStepMeta(review.current_step).label, createdAt: review.created_at, status: "waiting_review", statusMeta: getOrderStatusMeta("waiting_review"), reviewTaskStatus: review.review_task_status, latestRevisionAssetId: review.latest_revision_asset_id, currentRevisionAssetId: review.current_revision_asset_id, latestRevisionVersion: review.latest_revision_version, revisionCount: review.revision_count, pendingManualConfirm: review.pending_manual_confirm, hasMockAssets: false, failureCount: 0, }; } export function adaptPendingReviews( reviews: PendingReviewResponseDto[], ): ReviewQueueVM { const items = reviews.map(adaptPendingReviewItem); return { items, state: items.length ? READY_STATE : businessEmptyState( "暂无待审核订单", "当前没有等待人工处理的审核任务。", ), }; } export function adaptReviewSubmission( submission: SubmitReviewResponseDto, ): ReviewSubmissionVM { return { orderId: submission.order_id, workflowId: submission.workflow_id, revisionAssetId: submission.revision_asset_id, decision: submission.decision, decisionMeta: getReviewDecisionMeta(submission.decision), status: submission.status, }; }