package com.prolog.eis.service.shelves;

import com.prolog.eis.dto.shelves.LocationLimitedDto;
import com.prolog.eis.dto.shelves.LimitedGoodsAllocationInfoDto;
import com.prolog.eis.dto.shelves.LocationLimitedDetailDto;
import com.prolog.eis.model.shelves.LimitedGoodsAllocationInfo;
import com.prolog.framework.common.message.RestMessage;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface LocationLimitedService {
    /**
     * 货位限定信息查询
     *
     * @return
     */
    List<LimitedGoodsAllocationInfo> getLimitedGoodsAllocationInfo(LocationLimitedDto dto);


    /**
     * 货位限定明细查询
     *
     * @param dto
     * @return
     */
    List<LocationLimitedDetailDto>  getLimitedGoodsAllocationDetails(LocationLimitedDto dto);


    /**
     * 货位限定信息新增
     *
     * @param limited_goods_allocation_info
     * @return
     */
    RestMessage<List<LimitedGoodsAllocationInfoDto>> insertLimitedGoodsAllocationInfo(List<LimitedGoodsAllocationInfo> limited_goods_allocation_info);

    /**
     * 货位限定信息修改
     *
     * @param limited_goods_allocation_info
     * @return
     */
    RestMessage updateLimitedGoodsAllocationInfo(List<LimitedGoodsAllocationInfo> limited_goods_allocation_info);

    /**
     * 货位限定信息明细修改
     *
     * @param dto
     * @return
     */
    RestMessage updateLimitedGoodsAllocationDetails(List<LimitedGoodsAllocationInfoDto> dto);


    /**
     * 货位限定信息明细新增
     *
     * @param dto
     * @return
     */
    RestMessage insertLimitedGoodsAllocationDetails(List<LimitedGoodsAllocationInfo> dto);

    /**
     * 货位限定信息删除
     *
     * @return
     */
    RestMessage deleteLimitedGoodsAllocationInfo(LocationLimitedDto dto);

    /**
     * 货位限定信息明细删除
     * @return
     */
    RestMessage deleteLimitedGoodsAllocationDetails(LocationLimitedDetailDto dto);

    /**
     * 货位限定信息导入
     *
     * @param file
     * @return
     */
    RestMessage<String> importLimitedGoodsAllocationInfo(MultipartFile file) throws IOException;


}
