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,
  }
}
