/**
 * V4.0 作品状态常量（数值型）
 *
 * 状态流转: PENDING(1) -> PROCESSING(2) -> COMPLETED(3) -> CATALOGED(4) -> DUBBED(5)
 *           任意阶段可能 -> FAILED(-1)
 *
 * COMPLETED(3) = 图片生成完成，需要进入编目(EditInfo)
 * CATALOGED(4) = 编目完成，需要进入配音(Dubbing)
 * DUBBED(5)    = 配音完成（最终状态），可阅读
 */
export const STATUS = {
  FAILED: -1,
  PENDING: 1,
  PROCESSING: 2,
  COMPLETED: 3,   // 图片完成，待编目
  CATALOGED: 4,   // 编目完成，待配音
  DUBBED: 5        // 配音完成（最终态）
}

/**
 * 根据作品状态决定应导航到的路由
 * @param {number} status - 作品状态值
 * @param {string} workId - 作品ID
 * @returns {{ name: string, params?: object } | null} 路由对象，null 表示状态异常
 */
export function getRouteByStatus(status, workId) {
  switch (status) {
    case STATUS.PENDING:
    case STATUS.PROCESSING:
      return { name: 'Creating' }
    case STATUS.COMPLETED:
      return { name: 'Preview', params: { workId } }
    case STATUS.CATALOGED:
      return { name: 'Dubbing', params: { workId } }
    case STATUS.DUBBED:
      return { name: 'Read', params: { workId } }
    case STATUS.FAILED:
      return null // 调用方自行处理失败提示
    default:
      return null
  }
}
