import { request } from '@umijs/max';

export default {
    /**
     * 物料列表
     * @param params 
     * @returns 
     */
    MaterialList(params: MaterialTypes.MaterialPageListParams) {
        return request('/erp/material/Material/GetMaterialPage', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 根据Id获取物料信息
     * @param id 
     */
    GetMaterialById(id: string) {
        return request(`/erp/material/Material/GetMaterialById?id=${id}`, {
            method: 'GET'
        });
    },

    /**
     * 新增物料
     * @param params 
     * @returns 
     */
    AddMaterial(params: MaterialTypes.MaterialItemEA) {
        return request('/erp/material/Material/AddMaterial', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 修改物料
     * @param params 
     * @returns 
     */
    UpdateMaterial(params: MaterialTypes.MaterialItemEA) {
        return request('/erp/material/Material/UpdateMaterial', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 修改物料价格
     * @param params 
     * @returns 
     */
    UpdateMateriaPrice(params: MaterialTypes.MaterialPriceParams) {
        return request('/erp/material/Material/UpdateMateriaPrice', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },


    /**
     * 扩展属性分页列表
     * @param params 
     * @returns 
     */
    GetExtendAttributePage(params: MaterialTypes.ExtendAttributePageParams) {
        return request('/erp/material/ExtendAttribute/GetExtendAttributePage', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 添加扩展属性
     * @param params 
     * @returns 
     */
    AddExtendAttribute(params: MaterialTypes.ExtendAttributeItem) {
        return request('/erp/material/ExtendAttribute/AddExtendAttribute', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 修改扩展属性
     * @param params 
     */
    UpdateExtendAttribute(params: MaterialTypes.ExtendAttributeItem) {
        return request('/erp/material/ExtendAttribute/UpdateExtendAttribute', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 根据获取扩展属性id获取扩展属性
     * @param id 
     * @returns 
     */
    GetExtendAttributeById(id: string) {
        return request(`/erp/material/ExtendAttribute/GetExtendAttributeById?id=${id}`, {
            method: 'GET'
        });
    },

    /**
     * 根据物料ID查询物料扩展属性列表
     * @param materialId 
     * @returns 
     */
    GetMaterialExtendAttributeById(materialId: string) {
        return request(`/erp/material/MaterialExtend/GetMaterialExtendAttributeById/${materialId}`, {
            method: 'GET'
        });
    },

    /**
     * 新增物料的扩展属性信息
     * @param params 
     * @returns 
     */
    AddMaterialExtendAttribute(params: MaterialTypes.MaterialExtendAttributeItem) {
        return request('/erp/material/MaterialExtend/AddMaterialExtendAttribute', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 编辑物料的扩展属性信息
     * @param params 
     */
    UpdateMaterialExtendAttribute(params: MaterialTypes.MaterialExtendAttributeItem) {
        return request('/erp/material/MaterialExtend/UpdateMaterialExtendAttribute', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 获取物料类型分页列表
     * @param params 
     */
    GetMaterialTypePage(params: MaterialTypes.MaterialTypeParams) {
        return request('/erp/material/MaterialType/GetMaterialTypePage', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 新增物料类型
     * @param params 
     * @returns 
     */
    AddMaterialType(params: MaterialTypes.MaterialType) {
        return request('/erp/material/MaterialType/AddMaterialType', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 更新物料类型
     * @param params 
     * @returns 
     */
    UpdateMaterialType(params: MaterialTypes.MaterialType) {
        return request('/erp/material/MaterialType/UpdateMaterialType', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 根据物料类型Id获取物料的拓展信息
     * @param id 
     */
    GetMaterialTypeExtendAttributeById(id: string) {
        return request(`/erp/material/MaterialType/GetMaterialTypeExtendAttributeById?Id=${id}`, {
            method: 'GET'
        });
    },

    /**
     * 新增物料类型的拓展信息
     * @param params 
     * @returns 
     */
    AddMaterialTypeExtendAttribute(params: MaterialTypes.MaterialTypeExtend) {
        return request('/erp/material/MaterialTypeExtend/AddMaterialTypeExtendAttribute', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 更新物料类型扩展信息
     * @param params 
     * @returns 
     */
    UpdateMaterialTypeExtendAttribute(params: MaterialTypes.MaterialTypeExtend) {
        return request('/erp/material/MaterialTypeExtend/UpdateMaterialTypeExtendAttribute', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 根据物料Id查询物料的修改记录
     * @param params
     * @returns
     */
    MeterialModifyPage(params: MaterialTypes.MaterialModifyPageParams) {
        return request(`/erp/material/MeterialModify/MeterialModifyPage`, {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 新增物料修改记录
     * @param params 
     * @returns 
     */
    AddMeterialModify(params: MaterialTypes.MaterialModify) {
        return request('/erp/material/MeterialModify/AddMeterialModify', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 根据物料Id获取物料单位的换算列表
     * @param id 
     * @returns 
     */
    GetUnitTransformationsById(id: string) {
        return request(`/erp/material/UnitTransformation/GetUnitTransformationsById?Id=${id}`, {
            method: 'GET'
        });
    },

    /**
     * 添加物料换算
     * @param params 
     * @returns 
     */
    AddUnitTransformation(params: MaterialTypes.MaterialUnitTransform) {
        return request('/erp/material/UnitTransformation/AddUnitTransformation', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },

    /**
     * 编辑物料换算
     * @param params 
     * @returns 
     */
    UpdateUnitTransformation(params: MaterialTypes.MaterialUnitTransform) {
        return request('/erp/material/UnitTransformation/UpdateUnitTransformation', {
            method: 'POST',
            data: {
                ...params
            }
        });
    },


    /**
     * 导出物料模板
     * @param materialTypeId 
     * @returns 
     */
    MaterialTemplateExport(materialTypeId: string) {
        return request(`/erp/material/Material/MaterialTemplateExport?materialTypeId=${materialTypeId}`, {
            method: 'GET',
            responseType: 'blob'
        });
    },

    /**
     * 导出物料数据
     * @param params 
     * @returns 
     */
    MaterialDataExport(params: MaterialTypes.ExportMaterialParams) {
        return request('/erp/material/Material/MaterialDataExport', {
            method: 'POST',
            responseType: 'blob',
            data: {
                ...params
            }
        });
    }
}