package com.cim.idm.service;

import com.cim.idm.model.dto.PageDto;
import com.cim.idm.model.dto.WareHouseEditDto;
import com.cim.idm.model.dto.storage.StorageAddDto;
import com.cim.idm.model.dto.storage.StorageDelDto;
import com.cim.idm.model.dto.storage.StorageEditDto;
import com.cim.idm.model.dto.storage.StorageSearchDto;
import com.cim.idm.model.po.storage.StorageSpec;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IWareHouseService {
    /**
     * 编辑
     * @param dto 请求
     * @return 结果
     */
    int edit(WareHouseEditDto dto);

    /**
     * 分页
     * @param dto 请求
     * @return 货位
     */
    PageInfo<StorageSpec> page(PageDto dto);

    /**
     * 获取货位
     * @param siteName 工厂
     * @param storageName 货位编码
     * @return 货位
     */
    StorageSpec get(String siteName, String storageName);

    /**
     * 新增
     * @param storageAddDto 货位
     * @return 结果
     */
    int add(StorageAddDto storageAddDto);

    /**
     * 编辑
     * @param storageEditDto 请求
     * @return 结果
     */
    int editStorage(StorageEditDto storageEditDto);

    /**
     * 删除
     * @param storageDelDto 请求
     * @return 结果
     */
    int delStorage(StorageDelDto storageDelDto);

    /**
     * 检索
     * @param storageSearchDto 请求
     * @return 结果
     */
    List<StorageSpec> search(StorageSearchDto storageSearchDto);

    /**
     * 获取仓库信息
     * @param erpLocation
     * @return
     */
    StorageSpec getLocation(String erpLocation);
}
