export interface StatusTreeNode {
  code: string
  remark: string
  count: number
  children?: StatusTreeNode[]
}

export interface SearchForm {
  platform?: string
  craftCode?: string | string[]
  stockSku?: string
  styleNo?: string
  batchNo?: string
  orderNumber?: string
  customerOrderNumber?: string
  shopOrderNumber?: string
  productType?: string | number | (string | number)[]
  multi?: boolean | null
  timeType?: number | null
  startTime?: string | null
  endTime?: string | null
  logisticsWayCode?: string
  receiverCountry?: string | string[]
  factoryOrderNumber?: string
  userMark?: string
  sku?: string
  trackingNumber?: string
  replaceShipment?: number | string
  shipmentType?: number | string
  tagsIdArr?: string[]
  productMark?: string
  source?: string
  size?: string
  logisticsCompanyCode?: string
  blocking?: boolean
  standardDesignImage?: boolean
}

export interface FactoryOrderNewListData {
  id: number
  orderNumber?: string
  customerOrderNumber?: string
  shopOrderNumber?: string
  status?: string
  statusName?: string
  customerTags?: { name: string }[]
  logisticsWayCode?: string
  logisticsWayName?: string
  totalWeight?: number
  totalProductNum?: number
  logisticsSourceNo?: string
  receiverName?: string
  receiverPhone?: string
  receiverCode?: string
  receiverAddress?: string
  createTime?: string
  acceptTime?: string
  finishTime?: string
}

export interface ProductListData {
  id: number
  orderId?: number
  productImage?: string
  productName?: string
  variantSku?: string
  stockSku?: string
  craftCode?: string
  craftName?: string
  styleNo?: string
  price?: number
  quantity?: number
  weight?: number
  availableQuantity?: number
  stockQuantity?: number
  occupiedQuantity?: number
  customsNameEnglish?: string
  customsNameChinese?: string
  customsWeight?: number
  customsValue?: number
  remark?: string
}

export interface LogListData {
  id: number
  bizId?: number | string
  employeeName?: string
  description?: string
  createTime?: string
}

export interface BatchManageData {
  id: number
  batchNo?: string
  downloadStatus?: string
  orderCount?: number
  totalCount?: number
  creator?: string
  craftType?: string
  timesRange?: string
  createTime?: string
  extractTimes?: number
}

export interface RestockData {
  id: number
  warehouseName?: string
  skuImage?: string
  productName?: string
  styleNo?: string
  stockSku?: string
  shortageQuantity?: number
  availableQuantity?: number
  stockQuantity?: number
  occupiedQuantity?: number
}

export interface PickCompleteData {
  id: number
  warehouseName?: string
  skuImage?: string
  productName?: string
  styleNo?: string
  stockSku?: string
  pickQuantity?: number
  availableStock?: number
  stockQuantity?: number
  producingQuantity?: number
  occupiedQuantity?: number
  pickStatus?: 'success' | 'partial' | 'fail'
}

export interface PickFailData {
  id: number
  warehouseName?: string
  skuImage?: string
  productName?: string
  styleNo?: string
  stockSku?: string
  currentStock?: number
  occupiedQuantity?: number
  currentAvailableStock?: number
  producingQuantity?: number
  suggestOutQuantity?: number
  afterOutStock?: number
  afterOutOccupied?: number
  afterOutAvailable?: number
}

