import type { Issue } from '../gitea/types' export interface LockedReason { locked: boolean prerequisiteNumber?: number prerequisiteColumn?: string } /** * 纯判定:工单被未完成的前置挡住才算锁定。快照里找不到工单或前置一律放行, * 与 webview 的 `isIssueLocked` 保持同一语义。 */ export function evaluateLockedReason(issues: Issue[], issueNumber: number): LockedReason { const issue = issues.find(i => i.number === issueNumber) if (!issue || issue.prerequisite === undefined) return { locked: false } const prereq = issues.find(i => i.number === issue.prerequisite) if (!prereq || prereq.column === 'done') return { locked: false } return { locked: true, prerequisiteNumber: prereq.number, prerequisiteColumn: prereq.column, } }