package com.wms_main.service.api;

import com.wms_main.model.dto.request.ewm.*;
import com.wms_main.model.dto.response.ewm.EwmApiBackResponse;
import com.wms_main.model.dto.response.ewm.EwmApiLocalResponse;
import com.wms_main.model.dto.response.ewm.EwmApiStockResponse;

public interface IEwmApiService {

    /**
     * 发送载具入库请求到EWM系统
     * @param request 载具入库请求
     * @return EWM系统响应结果
     */
    EwmApiLocalResponse sendVehicleForIn(SendEwmVehicleForInRequest request);

    /**
     * 载具入库结果反馈到EWM系统
     * @param request 载具入库结果反馈请求
     * @return EWM系统响应结果
     */
    EwmApiBackResponse sendWarehouseInCompleted(SendWarehouseInCompletedRequest request);

    /**
     * 载具出库结果反馈到ewm系统
     * @param request 载具入库结果反馈请求
     * @return EWM系统响应结果
     */
    EwmApiBackResponse sendWarehouseOutCompleted(SendWarehouseOutCompletedRequest request);


    /**
     * 容器置空请求
     * @return 载具入库结果反馈地址
     */
    EwmApiBackResponse sendContainerEmpty(SendEwmVehicleForInRequest request);


    /**
     * 获取EWM系统库存进行比对
     * @return 获取到的库存
     */
    EwmApiStockResponse getEwmStock(SendEwmGetStockInformationRequest request);


    /**
     * 目标箱号向EWM系统验证
     * @return 获取到的库存
     */
    EwmApiBackResponse sendEwmCheckContainerNo(SendEwmCheckContainerNo request);
}
