import axios from './axios'
import type { BasePaginationData, BaseRespData } from '@/types/api'
import type {
  FactoryOrderNewListData,
  LogListData,
  ProductListData,
  SearchForm,
  StatusTreeNode,
} from '@/types/api/factoryOrderNew'

// 左侧状态树 - 先保留接口定义，实际数据在前端写死
export function getStatusTreeApi() {
  return axios.get<never, BaseRespData<StatusTreeNode[]>>(
    'factory/orderNew/getStatusTree',
  )
}

export function getFactoryOrderNewListApi(
  data: SearchForm,
  currentPage: number,
  pageSize: number,
  statusCode?: string,
) {
  return axios.post<never, BasePaginationData<FactoryOrderNewListData>>(
    'factory/orderNew/list_page',
    {
      ...data,
      currentPage,
      pageSize,
      statusCode,
    },
  )
}

export function getFactoryOrderNewDetailApi(id: number | string) {
  return axios.get<never, BaseRespData<ProductListData[]>>(
    'factory/orderNew/detail',
    {
      params: { id },
    },
  )
}

export function getFactoryOrderNewLogApi(id: number | string) {
  return axios.get<never, BaseRespData<LogListData[]>>(
    'factory/orderNew/log',
    {
      params: { id },
    },
  )
}

export function confirmOrderApi(ids: (number | string)[]) {
  return axios.post<never, BaseRespData<void>>(
    'factory/orderNew/confirm',
    { ids },
  )
}

export function cancelOrderApi(ids: (number | string)[]) {
  return axios.post<never, BaseRespData<void>>(
    'factory/orderNew/cancel',
    { ids },
  )
}

export function refreshProductInfoApi(ids: (number | string)[]) {
  return axios.post<never, BaseRespData<void>>(
    'factory/orderNew/refreshProductInfo',
    { ids },
  )
}

export function transferOldFlowApi(ids: (number | string)[]) {
  return axios.post<never, BaseRespData<void>>(
    'factory/orderNew/transferOldFlow',
    { ids },
  )
}

