import { request } from "@umijs/max";
export interface Prod extends PageParam {
  /**
   * 商品简称
   */
  abbreviation?: string;
  /**
   * 是否特殊日期（节假日周末什么的）0关1开
   */
  additionalFeeSwitch?: number;
  /**
   * 是否特殊时段0关1开
   */
  additionalSwitch?: number;
  /**
   * 品牌
   */
  brand?: string;
  /**
   * 简要描述,卖点等
   */
  brief?: string;
  /**
   * 商品分类
   */
  categoryId?: number;
  /**
   * 详细描述
   */
  content?: string;
  /**
   * 创建时间
   */
  createTime?: string;
  /**
   * 创建者，目前使用 SysUser 的 id 编号
   *
   * 使用 String 类型的原因是，未来可能会存在非数值的情况，留好拓展性。
   */
  creator?: string;
  /**
   * 是否删除
   */
  deleted?: number;
  /**
   * 是否紧急响应服务0关1开
   */
  emergencySwitch?: number;
  /**
   * 商品轮播图片，以,分割
   */
  imgs?: string;
  /**
   * 是否置灰0否1是
   */
  isProhibit?: number;
  /**
   * 关键词
   */
  keyword?: string;
  /**
   * 是否接单上线0关1开
   */
  orderLimitSwitch?: number;
  /**
   * 商品主图
   */
  pic?: string;
  /**
   * 审核备注
   */
  processNotes?: string;
  /**
   * 产品ID
   */
  prodId?: number;
  /**
   * 商品名称
   */
  prodName?: string;
  /**
   * 商品编号
   */
  prodNumber?: string;
  /**
   * 是否开启区域0关1开
   */
  regionSwitch?: number;
  /**
   * 是否预约0关1开
   */
  reservationSwitch?: number;
  /**
   * seo搜索
   */
  seoSearch?: string;
  /**
   * seo标题
   */
  seoShortName?: string;
  /**
   * 分享话术
   */
  shareContent?: string;
  /**
   * 分享图
   */
  shareImage?: string;
  /**
   * 店铺id
   */
  shopId?: number;
  /**
   * 销量
   */
  soldNum?: number;
  /**
   * 默认是1，正常状态（出售中）, 0：下架（仓库中） 2：待审核
   */
  status?: number;
  /**
   * 标签
   */
  tag?: string[];
  /**
   * 展示的权重
   */
  top?: number;
  /**
   * 更新者，目前使用 SysUser 的 id 编号
   *
   * 使用 String 类型的原因是，未来可能会存在非数值的情况，留好拓展性。
   */
  updater?: string;
  /**
   * 最后更新时间
   */
  updateTime?: string;
  /**
   * 版本 乐观锁
   */
  version?: number;
  /**
   * 视频
   */
  video?: string;
  /**
   * 是否开启体重配置0关1开
   */
  weightSwitch?: number;
  /**
   * 商品轮播图片，以,分割
   */
  whiteImg?: string;
  [property: string]: any;
}

export interface SkuList {
  skuName: string; //规格名称
  basePrice?: number; //基准价格 *
  price?: number; //"当前价"
  isSpecs?: number; //默认规格
  stocksFlg?: number; //库存类型
  status?: number; //状态
  stocks?: number; //可售数量
  isShelf?: number; //上/下架
  skuId?: number;
  isExist?: number;
  propIds?: string;
  deleteTime?: number; //删除时间
  remainingDays?: number; //保留时间
  id?: number;
  // 添加索引签名，允许动态属性
  [key: string]: string | number | undefined;
}
export interface SkuPropValues {
  id?: number;
  propValue: string;
  valueId: number;
  state: number; // 0禁用1启用
  isExist: number; //是否新增 0否1是
  sort: number;
  isExpire: number /**是否失效0否1是**/;
}
export interface SkuConfig {
  propName: string; //规格名字
  propId: number;
  id?: number;
  isExist?: number; // //是否新增 0否1是
  prodPropValues: SkuPropValues[]; //规格值
}

export interface ProdDetail {
  prodName: string; //商品名称
  abbreviation?: string; //商品简称
  brief?: string; //商品概述
  prodNumber?: string; //商品编码
  brand?: string; //品牌
  shopId?: string; //商品所有权
  categoryId?: number; //关联类目
  tag?: string[]; //商品标签
  skuList: SkuList[];
  prodPropSaveReqVO: SkuConfig;
}

export interface ProdReq extends PageParam {
  name?: string;
  status?: number; //状态  1，正常状态（出售中）, 0：下架（仓库中） 2：待审核
  prodName?: string; // 商品名称
  createTime?: Date; //创建时间
}

// 查询商品管理列表
export const getProdPage = async (params: ProdReq) => {
  return request("/product/prod/page", {
    method: "GET",
    params,
  });
};

// 查询商品回收站
export const getProdRecycleBinPageList = async (params: ProdReq) => {
  return request("/product/prod/getProdRecycleBinPageList", {
    method: "GET",
    params,
  });
};

// 恢复商品
export const restoreProdList = async (params: { ids: number[] }) => {
  return request("/product/prod/restoreProdList", {
    method: "POST",
    params,
  });
};

// 删除商品
export const deleteProd = async (params: { id: number }) => {
  return request<PageResult<Prod[]>>("/product/prod/delete", {
    method: "DELETE",
    params,
  });
};

// 批量删除商品
export const deleteSkuList = async (params: { ids: number[] }) => {
  return request<PageResult<Prod[]>>("/product/prod/deleteSkuList", {
    method: "DELETE",
    params,
  });
};

// 批量上下架商品
export const updateSkuShelfList = async (params: {
  status: number;
  ids: number[];
}) => {
  return request<PageResult<Prod[]>>("/product/prod/updateSkuShelfList", {
    method: "DELETE",
    params,
  });
};

// 查询商品管理详情

export const getProdDetail = async (params: { id: number }) => {
  return request<PageResult<Prod[]>>("/product/prod/getProdInfo", {
    method: "GET",
    params,
  });
};

// 创建商品
export const createProd = async (data: Prod) => {
  return request<PageResult<Prod[]>>("/product/prod/create", {
    method: "POST",
    data,
  });
};
// 更新商品详情
export const updateProd = async (data: Prod) => {
  return request<Promise<PageResult<Prod[]>>>("/product/prod/update", {
    method: "PUT",
    data,
  });
};

// 获取sku规格

export const getSKuPropList = async (params: Prod) => {
  return request("/product/sku/getSKuPropList", {
    method: "GET",
    params,
  });
};

// 更新sku

export const updateProp = async (data: Prod) => {
  return request("/product/sku/updateProp", {
    method: "PUT",
    data,
  });
};
//更新单品SKU
export const updateSKu = async (data: Prod) => {
  return request("/product/sku/update", {
    method: "PUT",
    data,
  });
};
//更新单品SKU上下架

export const updateSkuShelf = async (params: {
  id?: number;
  isShelf?: number;
}) => {
  return request("/product/sku/updateSkuShelf", {
    method: "PUT",
    params,
  });
};

//删除规格值

export const deletePropSku = async (params: { id?: number }) => {
  return request("/product/sku/deleteProp", {
    method: "PUT",
    params,
  });
};
//禁用规格值

export const disablePropSku = async (params: Prod) => {
  return request("/product/sku/disableProp", {
    method: "PUT",
    params,
  });
};
//获得SKU分页列表

export const getSkuPageList = async (params: Prod) => {
  return request("/product/sku/getSkuPageList", {
    method: "GET",
    params,
  });
};
//删除SKU
export const deleteSku = async (id: number) => {
  return request("/product/sku/delete", {
    method: "DELETE",
    params: { id },
  });
};
//获得SKU回收站列表
export const getSkuRecycleBinPageList = async (params: Prod) => {
  return request("/product/sku/getSkuRecycleBinPageList", {
    method: "GET",
    params,
  });
};

//获得规格回收站

export const getPropRecycleBinList = async (params: Prod) => {
  return request("/product/sku/getPropRecycleBinList", {
    method: "GET",
    params,
  });
};
//恢复规格值

export const restorePropList = async (ids: number[]) => {
  return request("/product/sku/restorePropList", {
    method: "POST",
    params: { ids },
  });
};
//SKU回收站恢复
export const restoreSkuList = async (ids: number[]) => {
  return request("/product/sku/restoreSkuList", {
    method: "POST",
    params: { ids },
  });
};

// 规格属性修改
export const updateProdProp = async (params: {
  id: number;
  propName: string;
}) => {
  return request("/product/sku/updateProdProp", {
    method: "PUT",
    params,
  });
};
// 规格值修改
export const updatePropValue = async (params: {
  id: number;
  propValue: string;
}) => {
  return request("/product/sku/updatePropValue", {
    method: "PUT",
    params,
  });
};
// /tz/sku/update

// //修改服务配置
// export const getSKuPropList = async (data: Prod) => {
//   return await request.post({ url: "/tz/sku/getSKuPropList", data: data });
// };
// /product/prod/uptateProdService
