export type WorkReviewDecision = 'approved' | 'revision_required' export type WorkReviewReviewerRole = 'manager' | 'final_reviewer' export function deriveWorkReviewDecision( decisions: ReadonlyArray<{ decision: WorkReviewDecision }>, ): WorkReviewDecision { return decisions.some((item) => item.decision === 'revision_required') ? 'revision_required' : 'approved' } export function deriveCompletedWorkReviewStatus( reviews: ReadonlyArray<{ reviewerRole: string decision: WorkReviewDecision }>, ): WorkReviewDecision | null { const manager = reviews.find((review) => review.reviewerRole === 'manager') const finalReviewer = reviews.find((review) => review.reviewerRole === 'final_reviewer') if (!manager || !finalReviewer) return null return deriveWorkReviewDecision([manager, finalReviewer]) }