import { request } from 'umi';
import { api } from '../api';


/*====================商品库======================*/
/**
 * 获取商品库列表
 */
export interface GetSysProductCatalogProps {
    pageNum: number,
    pageSize: number,
    catalogName?: string, // 商品库名称
    catalogScaleType?: string, // 商品库规模
    catalogType?: string, // 商品库类型
    industryType?: string,  // 商品库行业类型
}
export async function getSysProductCatalogApi(data: GetSysProductCatalogProps) {
    return request(api + `/adq/sysProductCatalog/list`, {
        method: 'POST',
        data
    })
}

/**
 * 新增商品库
 */
export type AddSysProductCatalogProps = Required<Omit<GetSysProductCatalogProps, 'pageNum' | 'pageSize'>>;
export async function addSysProductCatalogApi(data: AddSysProductCatalogProps) {
    return request(api + `/adq/sysProductCatalog`, {
        method: 'POST',
        data
    })
}

/**
 * 修改商品库
 */
export interface EditSysProductCatalogProps extends AddSysProductCatalogProps {
    productCatalogId: number  // 商品库ID
}
export async function editSysProductCatalogApi(params: EditSysProductCatalogProps) {
    const { productCatalogId, ...data } = params
    return request(api + `/adq/sysProductCatalog/${productCatalogId}`, {
        method: 'PUT',
        data
    })
}

/**
 * 删除商品库
 * @param data 
 * @returns 
 */
export async function delSysProductCatalogApi(data: { productCatalogId: number }) {
    return request(api + `/adq/sysProductCatalog/${data.productCatalogId}`, {
        method: 'DELETE'
    })
}

/**
 * 获取商品库详情
 * @param data 
 * @returns 
 */
export async function getSysProductCatalogDetaliApi(data: { productCatalogId: number }) {
    return request(api + `/adq/sysProductCatalog/${data.productCatalogId}`, {
        method: 'GET'
    })
}


/*====================商品======================*/


/**
 * 获取商品列表
 */
export interface GetSysProductProps {
    pageNum: number,
    pageSize: number,
    productName?: string, // 商品名称
    productShortName?: string, // 商品简称
    description?: string, // 商品描述
    isVideo?: boolean,  // 是否视频商品
}
export async function getSysProductApi(data: GetSysProductProps) {
    return request(api + `/adq/sysProduct/list`, {
        method: 'POST',
        data
    })
}

/**
 * 新增商品库
 */
export type AddSysProductProps = {
    description: string, // 商品描述
    expirationTime: string, // 商品下架时间
    isVideo: boolean, // 是否视频商品
    price: number, // 商品日常售价
    productImageUrl: string, // 商品预览图
    productName: string,  // 商品名称
    productShortName: string,  // 商品简称
    videoDuration?: string,  // 商品视频长度
    videoUrl?: string,  // 商品视频链接
}
export async function addSysProductApi(data: AddSysProductCatalogProps) {
    return request(api + `/adq/sysProductCatalog`, {
        method: 'POST',
        data
    })
}