package com.bonus.canteen.core.menu.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.bonus.canteen.core.menu.dto.*;
import com.bonus.canteen.core.menu.entity.MenuMaterial;
import com.bonus.canteen.core.menu.entity.MenuMaterialNutrition;
import com.bonus.canteen.core.menu.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface MenuMaterialService extends IService<MenuMaterial> {

   MenuMaterial getByMaterialId(Long materialId);

   Map<Long, MenuMaterialNutrition> getMenuMaterialNutrition(List<Long> materialIdList);

   MenuNutritionDetailVO getMenuNutritionDetailById(Long nutritionId);

   Long addMenuMaterial(MenuMaterialAddDTO content);

   List<MenuMaterialPageVO> getMenuMaterialPage(MenuMaterialPageDTO content);

   MenuMaterialVO getMaterialByMaterialId(Long materialId);

   void editMenuMaterial(MenuMaterialEditDTO content);

   void removeByMaterialId(Long materialId);

   void removeBatchByMaterialId(List<Long> content);

   void leadInMaterial(MenuMaterialLeadInDTO content);

   List<MenuMaterialBasVO> getMenuMaterialById(Long dishesId);

   void repairMaterialCategory();

   void batchImportMaterial(MultipartFile excel);

   MaterialImportCheckResult importDishesCheck(MultipartFile excel);

   Boolean importMaterials(List<MaterialImportDTO> materialImportDTOS);

   void batchImportMaterialProduct(MultipartFile excel);

   void batchUpdateMaterialCategory(MaterialCategoryBatchUpdateDTO content);

   List<MaterialFunctionListVO> listMaterialFunction(MaterialFunctionListDTO content);

   void materialDisable(MenuMaterialDisableDTO content);

   List<DrpImportMaterialVO> importMaterialExcel(MultipartFile excel);

   String generateMaterialCode();

   void importMaterialProduct(List<MenuMaterialProductImportDTO> materialImportProductDTOList);
}
