operation.ts 1.7 KB
export const OPERATION_TASK_STATUS_VALUES = [
  'pending',
  'in_progress',
  'pending_test',
  'failed',
  'rework',
  'completed',
  'skipped'
] as const

export const OPERATION_TASK_ACTION_VALUES = [
  'start',
  'complete_assembly',
  'complete_rework',
  'submit_test',
  'skip'
] as const

export type OperationTaskStatus = (typeof OPERATION_TASK_STATUS_VALUES)[number]
export type OperationTaskAction = (typeof OPERATION_TASK_ACTION_VALUES)[number]
export type OperationTaskResult = 'pending' | 'pass' | 'fail'

export interface OperationTaskAuditEvent {
  id: string
  action: OperationTaskAction
  fromStatus: OperationTaskStatus | null
  toStatus: OperationTaskStatus
  operator: string
  at: string
  remark?: string
  evidencePath?: string
  nextAction: string
}

export interface OperationTask {
  id: number
  workOrderNo: string
  sn: string
  stepName: string
  workstation: string
  device: string
  operator: string
  startedAt?: string
  endedAt?: string
  result: OperationTaskResult
  status: OperationTaskStatus
  nextAction: string
  auditEvents: OperationTaskAuditEvent[]
}

export interface OperationTaskListQuery {
  workstation?: string
  stepName?: string
  operator?: string
  status?: OperationTaskStatus
  sn?: string
}

export interface OperationTaskActionPayload {
  operator: string
  remark?: string
  testPassed?: boolean
  workstation?: string
  stepName?: string
  evidencePath?: string
}

export interface OperationTaskMutationResponse {
  success: boolean
  errorCode: string | null
  message: string
  state?: OperationTaskStatus
  nextAction?: string
}

export interface OperationEvidenceUploadResponse {
  success: boolean
  errorCode: string | null
  message: string
  relativePath?: string
}