import type { addressItem } from './address'
import type { GoodsItem } from './global'
import type { orderEvaluateItem } from './order'

/** 商品列表参数 */
export type goodsListParams = {
  /** 分类id */
  classify_id?: string
  /** 商品名称 */
  name?: string
}

/** 商品列表 */
export type goodsListItem = {
  id: number
  name: string
  images: string[]
  min_price: string
  max_price: string
  min_origin_price: string
  max_origin_price: string
  total_sales: number
}

export type goodsServiceItem = {
  id: string
  name: string
  content: string
}

/** 商品信息 */
export type goodsResult = goodsListItem & {
  /** 商品描述 */
  desc: string
  /** 商品详情: 包含详情属性 + 详情图片 */
  // details: details
  params: { key: string; value: string }[]
  /** 商品图片详情[ 图片链接 ] */
  detail_images: string[]
  /** sku集合[ sku信息 ] */
  sku_list: skuItem[]
  /** 可选规格集合备注[ 可选规格信息 ] */
  spec_list: specItem[]
  /** 用户地址列表[ 地址信息 ] */
  user_address: addressItem[]
  /* 评价 */
  evaluate: orderEvaluateItem[]
  /* 评价数 */
  evaluate_count: number
  /* 好评率 */
  positive_rate: number
  /* 服务与承诺ID */
  goods_service: goodsServiceItem[]
  /* 收藏状态 */
  favorite: boolean
  /* 库存扣减类型 */
  deduct_stock_type: number
  /* 初始销量 */
  sales_init: number
  /* 实际销量 */
  sales_real: number
}

/** 商品详情: 包含详情属性 + 详情图片 */
export type details = {
  /** 商品属性集合[ 属性信息 ] */
  properties: detailsPropertyItem[]
  /** 商品详情图片集合[ 图片链接 ] */
  pictures: string[]
}

/** 属性信息 */
export type detailsPropertyItem = {
  /** 属性名称 */
  name: string
  /** 属性值 */
  value: string
}

/** sku信息 */
export type skuItem = {
  /** id */
  id: string
  /** 商品ID */
  goods_id: number
  /** 库存 */
  stock: number
  /** 原价 */
  origin_price: number
  /** sku图片 */
  image: string
  /** 当前价格 */
  price: number
  /** 规格集合[ 规格信息 ] */
  spec: skuspecItem[]
  /** 规格文本 */
  spec_text: string
}

/** 规格信息 */
export type skuspecItem = {
  /** 规格名称 */
  name: string
  /** 可选值名称 */
  value: string
}

export type goodsServiceItem = {
  id: number
  name: string
  content: string
}

export type goodsShareResult = {
  /** 小程序码 */
  qrcode_url: string
}
