/**
 * 项目：-
 * @Author: xiongwei
 * @Date: 2022-06-28 11:50:00
 */

import { BasePageParams, PageResult, ApiResponse } from './baseModel';
import { Product } from './product';

export interface GoodsParams extends BasePageParams {
  /**
   * ID系统自动生成
   */
  id?: number;
  /**
   * ID系统自动生成 IN值List
   */
  idList?: Array<number>;
  /**
   * 经销商id
   */
  distributorId?: number;
  /**
   * 折扣价
   */
  discountPrice?: number;
  /**
   * 描述
   */
  remark?: string;
  /**
   * 是否上架
   */
  status?: String;
  /**
   * 是否上架 IN值List
   */
  statusList?: Array<string>;
  /**
   * 商品类型
   */
  goodsType?: String;
  /**
   * 商品类型 IN值List
   */
  goodsTypeList?: Array<string>;
  /**
   * 是否删除
   */
  deleteStatus?: String;
  /**
   * 是否删除 IN值List
   */
  deleteStatusList?: Array<string>;
  /**
   * 操作人ID
   */
  editorId?: number;
  /**
   * 操作人
   */
  editorName?: string;
  /**
   * create_time
   */
  createTime?: Date;
  /**
   *  下限值(大于等于)
   */
  createTimeFrom?: Date;
  /**
   *  上限值(小于)
   */
  createTimeTo?: Date;
  /**
   * update_time
   */
  updateTime?: Date;
  /**
   *  下限值(大于等于)
   */
  updateTimeFrom?: Date;
  /**
   *  上限值(小于)
   */
  updateTimeTo?: Date;
  /**
   * 其他参数
   */
  [key: string]: any;
}

export interface Goods {
  /**
   * ID系统自动生成
   */
  id: number;
  /**
   * ID系统自动生成
   */
  productList: Array<Product>;
  /**
   * 经销商id
   */
  distributorId?: number;
  /**
   * 折扣价
   */
  discountPrice?: number;
  /**
   * 描述
   */
  remark?: string;
  /**
   * 是否上架
   */
  status?: String;
  /**
   * 商品类型
   */
  goodsType: String;
  /**
   * 是否删除
   */
  deleteStatus?: String;
  /**
   * 操作人ID
   */
  editorId?: number;
  /**
   * 操作人
   */
  editorName?: string;
  /**
   * create_time
   */
  createTime?: Date;
  /**
   * update_time
   */
  updateTime?: Date;
  // 商品分类列表
  goodsCategoryList: Array<{ id: number }> | number[];
  // 名称
  name: string;
  // 图片
  pic?: string | string[];
  // 是否新品
  isNews: string;
  // 页面描述
  pageRemark?: string;
  // 套件数量
  quantity: number;
  uuid: string;
  cartProductDetailList: Array<Product>;
  goodsId?: number;
  lineThirdId: number;
}

export type GoodsPageResult = PageResult<Goods>;

export type GoodsPageResponse = ApiResponse<GoodsPageResult>;

export type GoodsResponse = ApiResponse<Goods>;
