package net.lab1024.sa.admin.module.business.wms.base.location.service;

import java.util.*;

import net.lab1024.sa.admin.module.business.wms.base.location.domain.form.*;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import org.springframework.web.multipart.MultipartFile;

/**
 * 库位信息 Service
 *
 * @author 霍锦
 * @since 2024-11-18 14:17:31
 * copyright 友仓
 */

public interface LocationService {

    /**
     * 添加
     *
     * @param addForm 添加参数
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> add(LocationAddForm addForm);

    /**
     * 更新
     *
     * @param updateForm 更新参数
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> update(LocationUpdateForm updateForm);

    /**
     * 批量删除
     *
     * @param idList 删除参数
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> batchDelete(List<Long> idList);

    /**
     * 单个删除
     *
     * @param locationId 入参
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> delete(Long locationId);

    /**
     * 批量调整
     *
     * @param multipleAdjust 参数
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> multipleAdjust(MultipleAdjust multipleAdjust);

    /**
     * 批量新增
     *
     * @param multipleInsert 参数
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> multipleInsert(MultipleInsert multipleInsert);

    /**
     * 库位导入
     *
     * @param file 上传文件
     * @return ResponseDTO<String>
     */
    ResponseDTO<String> importLocations(MultipartFile file);

   /**
     * 更新库位状态
     *
     * @param locationId 库位id
     * @param status     状态
     */
    void updateLocationStatus(Long locationId, String status);

}
