package com.wms.service.business;

import com.wms.entity.app.request.TaskInRequest;
import com.wms.entity.app.request.TaskOutRequest;
import com.wms.entity.app.request.WorkQuery;
import com.wms.entity.app.wcs.WcsBoxArriveRequest;
import com.wms.entity.app.wcs.WcsTaskResultRequest;
import com.wms.entity.app.wcs.WcsVehicleInRequest;

/**
 * 验证服务接口
 */
public interface IValidateService {
    /**
     * 验证入库请求
     * @param taskInRequest 入库请求
     * @return 验证结果
     */
    String validateTaskInRequest(TaskInRequest taskInRequest);

    /**
     * 验证出库请求
     * @param taskOutRequest 出库请求
     * @return 验证结果
     */
    String validateTaskOutRequest(TaskOutRequest taskOutRequest);

    /**
     * 验证任务结果反馈请求
     * @param wcsTaskResultRequest 任务结果反馈请求
     * @return 验证结果
     */
    String validateTaskResult(WcsTaskResultRequest wcsTaskResultRequest);

    /**
     * 验证载具入库请求
     * @param wcsVehicleInRequest 载具入库请求
     * @return 验证结果
     */
    String validateVehicleRequest(WcsVehicleInRequest wcsVehicleInRequest);

    /**
     * 验证重复入库请求
     * @param duplicateLocationRequest 重复入库请求
     * @return 验证结果
     */
    String validateDuplicateLocationRequest(WcsTaskResultRequest duplicateLocationRequest);

    /**
     * 验证Wcs上报箱子到达请求
     * @param boxArriveRequest Wcs上报箱子到达请求
     * @return 验证结果
     */
    String validateBoxArriveRequest(WcsBoxArriveRequest boxArriveRequest);

    /**
     * 验证获取工作信息请求
     * @param workQuery 请求参数
     * @return 验证结果
     */
    String validateGetWorkVoRequest(WorkQuery workQuery);
}
