export interface Tab {
  status?: string
  statusName?: string
  quantity?: number
}
export interface ExportParams extends SearchForm {
  idList?: number[]
  exportAll: boolean
  status?: string
  orderTracking?: boolean
}

export interface SearchForm {
  timeType?: number | null
  shopNumber?: string
  source?: string
  logisticsWayId?: number | null
  shipmentType?: string | number | null
  userMark?: string
  processNumber?: string
  trackingNumber?: string
  baseSku?: string
  factoryOrderNumber?: string
  sku?: string
  factorySubOrderNumber?: string
  status?: string
  customizedQuantity?: string
  multi?: boolean | null
  startTime?: string | null
  endTime?: string | null
  exceptionHandling?: number | undefined
  platform?: string
  productionClient?: string
  warehouseId?: string | number
  thirdSkuCode?: string
  supplierProductNo?: string
  batchArrangeNumber?: string
  craftCode?: string | string[]
  craftCodeArr?: string[]
  thirdStockSku?: string
  interceptStatus?: number | string
  trackRegisterSelect?: string | number
  sizeType?: number | null
  tagsId?: string
  size?: string
  tagsIdArr?: (number | null)[]
  replaceShipment?: number | null
  craftType?: string
  downloadStatus?: number
  syntheticStatus?: number
  automaticComposing?: number
  employeeId?: number
  blocking?: boolean
  outOfStock?: boolean
}
export interface PodUsOrderListData {
  id: number
  thirdOrderNumber?: string
  batchArrangeNumber?: string
  prnUrl?: string
  factoryOrderNumber?: string
  prnDownloadStatus?: boolean
  shopNumber?: string
  isUpload?: boolean
  factoryOnlineId?: number | null
  factoryNo?: number | null
  factoryCode?: string | null
  status?: string
  weight?: number | null
  totalProductAmount?: number | null
  productAmount?: number
  carriageAmount?: number | null
  totalAmount?: number | null
  productNum?: number | null
  trackStatus?: string | null
  receiverName?: string
  receiverPhone?: string
  receiverCountry?: string
  receiverProvince?: string
  receiverCity?: string
  receiverDistrict?: string
  receiverAddress1?: string
  receiverAddress2?: string
  receiverPostCode?: string
  paymentType?: string
  paymentTime?: string
  startStockingTime?: string
  finishTime?: string
  shipmentType?: number
  expressSheet?: string
  trackingNumber?: string
  processNumber?: string
  createTime?: string
  updateTime?: string
  remark?: string | null
  userMark?: string
  version?: number
  productList?: ProductList[]
  orderNumber?: string
  logisticsWayId?: number | null
  logisticsWayName?: string
  url?: string | null
  tiffUrl?: string | null
  lanshouAddress?: string | null
  customTagList?: { name: string }[]
  batchArrangeNum?: string
  fileName?: string
}
export interface ProductList {
  id: number
  podJomallOrderUsId: number
  thirdSubOrderNumber?: string
  thirdStockSku?: string
  factorySubOrderNumber?: string
  factoryCode?: string
  productName?: string
  baseSku?: string
  variantSku?: string
  productPrice?: number
  templatePrice?: number
  variantImage?: string
  craftPrice?: number
  craftCode?: string
  craftType?: string
  platform?: string
  imageAry?: string
  previewImgs?: []
  designImages?: string
  categoryId?: number
  categoryName?: string
  num?: number
  passNum?: number
  notPassNum?: number
  payAmount?: number
  status?: number
  weight?: number | null
  diyId?: string
  endProductId?: string
  customizedQuantity?: number
  tagIds?: string
  isProduction?: boolean
  createTime?: string
  startStockingTime?: string | null
  updateTime?: string
  remark?: string | null
  version?: number
  subOrderNumber?: string
  craftName?: string | null
  lanshouAddress?: string | null
  shopNumber?: string | null
  factoryOrderNumber?: string | null
  replenishmentNum?: number | null
  isReplenishment?: boolean
  thirdSkuCode?: string | null
  supplierProductNo?: string | null
  replenishmentSumNum?: number | null
  batchArrangeNumber?: string | null
  interceptStatus?: number | null
  sizeType?: number | null
  productMark?: string | null
  customTagList?: { name: string }[]
  outOfStock?: boolean
}
export interface cardImages {
  title: string
  url: string
  sort: number
  id?: number
}
export interface LogListData {
  id: number
  bizId: number
  userId: number
  employeeName: string
  description: string
  deleteContent: string
  createTime: string
  local?: string
}
export interface ProductionClient {
  code?: string
  remark?: string
}
export interface PodOrderRes extends ProductList {
  expectDeliveryTime?: string | null
  thirdOrderNumber?: string | null
  startStockingTime?: string | null
  factoryOrderNumber?: string | null
  userMark?: string | null
  craftName?: string | null
  craftId?: string | null
  shopNumber?: string | null
  color?: string | null
  size?: string | null
  note?: Array<{ prop: string | number; value: string | number }>
  imgList: cardImages[]
}

export interface LogisticsData {
  logisticsWayName: string // 物流名称
  warehouseName: string // 发货仓库
  status: boolean
  logisticsWayCode: string // 物流编码
  partition: string // 所在分区
  logisticsWayId?: number | null
}
export interface AddressInfo {
  id?: string
  receiverName: string
  receiverPhone: string
  receiverCountry: string
  receiverProvince: string
  receiverCity: string
  receiverDistrict: string
  receiverAddress1: string
  receiverAddress2: string
  receiverPostCode: string
}
export interface LogisticsFormData {
  processNumber: string
  trackingNumber: string
  expressSheetUrl: string
  expressSheet: File | null
}
export interface CraftListData {
  craftName: string
  craftCode: string
  craftType: string
}

export interface InterceptStateGroupData {
  shipment: {
    [key: string]: number
  }
  production: {
    [key: string]: number
  }
}
export interface IAllList {
  id: string
  name: string
  warehouseName?: string
}
export interface DataItem {
  printOrder: PrintOrderItem
  pickingVerify: PickingVerifyItem
}
// 打印订单信息
interface PrintOrderItem {
  filePath: string
  shopNumber: string
  id: number
  trackingNumber: string
  platform: string
  fileData: string
}

// 产品项
export interface ProductItem {
  id: number
  productName: string
  variantSku: string
  variantImage: string
  baseSku: string
  thirdSkuCode: string
  purchaseNumber: number
  podJomallUsNo: string
  numberMap: null
  count: number | null
  imageAry: string
  passNum: number
  productMark: string
  putPackingTime: null
  subShopNumber: string
  power: boolean
  pickingNumber: number | null
}

// 拣货验证信息
export interface PickingVerifyItem {
  id: number
  shopNumber: string
  factoryOrderNumber: string
  podOrderUsStatus: string
  trackingNumber: string
  pickingNumber: null
  purchaseNumber: number
  filePath: null
  fileData: null
  version: number
  productList: ProductItem[]
}