// 任务类型
export const TaskType = {
  FEATURE: "1",       // 新需求
  OPTIMIZATION: "2",  // 优化
  BUG: "3"            // BUG
}


// 任务状态
export const TaskStatus = {
  WAIT_COMPLETED: "1",  // 待完成(弃用)
  PROCESSING: "2",      // 进行中
  WAIT_CONFIRM: "3",    // 待确认(弃用)
  PASS: "4",           // 通过
  REJECT: "5",         // 驳回(弃用)
  CANCEL: "6",         // 取消

  // 获取可以提交的任务状态
  canSubmit() {
    return [this.PROCESSING]
  },
  // 获取可以取消的任务状态
  canCancel() {
    return [this.WAIT_COMPLETED, this.PROCESSING]
  },
  // 获取可以完成的任务状态
  canPass() {
    return [this.PROCESSING]
  }
}

// 任务级别
export const TaskLevel = {
  HIGH: "1",  // 高
  MEDIUM: "2",  // 中
  LOW: "3"      // 低
}

// 客户状态
export const CustomerStatus = {
  POTENTIAL: "1",    // 潜在
  INTENTION: "2",    // 意向
  TRANSACTION: "3",  // 成交
  INVALID: "4"       // 失效
}

// 客户意向级别
export const CustomerIntentLevel = {
  HIGH: "1",  // 高
  MEDIUM: "2",  // 中
  LOW: "3"      // 低
}

// 项目状态
export const ProjectStatus = {
  WAIT_START: "WAIT_START",  // 待开始
  IN_PROGRESS: "IN_PROGRESS",  // 进行中
  COMPLETED: "COMPLETED",  // 完成开发
  ACCEPTED: "ACCEPTED",  // 已验收
  MAINTENANCE: "MAINTENANCE",  // 维护中
  MAINTENANCE_OVERDUE: "MAINTENANCE_OVERDUE",  // 维护到期
  DEVELOPMENT_OVERDUE: "DEVELOPMENT_OVERDUE",  // 开发超期

  // 是否可以完成
  canComplete() {
    return [this.IN_PROGRESS, this.DEVELOPMENT_OVERDUE]
  },
  // 是否可以开始开发
  canStart() {
    return [this.WAIT_START]
  },
  // 是否可以验收
  canAccept() {
    return [this.COMPLETED]
  },
  // 是否可以维护
  canMaintenance() {
    return [this.ACCEPTED, this.MAINTENANCE_OVERDUE]
  }
}

// 任务提交状态
export const TaskSubmitStatus = {
  WAIT_CONFIRM: "1",  // 待审核(弃用)
  PASS: "2",        // 通过
  REJECT: "3",       // 驳回
  // 获取可以驳回的任务状态
  canReject() {
    return [this.PASS]
  }
}

// 公告重要程度
export const NoticeLevel = {
  HIGH: "1",  // 高
  MEDIUM: "2",  // 中
  LOW: "3"      // 低
}

// 公告类型
export const NoticeType = {
  NOTICE: "1",  // 公告
  MESSAGE: "2"   // 消息
}

// 消息类型
export const MessageBstType = {
  TASK: "task",  // 任务
  TASK_SUBMIT: "task_submit",   // 任务提交
  CUSTOMER: "customer",  // 客户
}