package com.wms_main.service.api;

import com.wms_main.model.bo.wcs.WcsPickTask;
import com.wms_main.model.bo.wcs.WcsStackerTask;
import com.wms_main.model.dto.request.wcs.WcsPickTaskRequest;
import com.wms_main.model.dto.request.wcs.WcsReleaseBoxRequest;
import com.wms_main.model.dto.request.wcs.WcsStackerTaskRequest;
import com.wms_main.model.dto.response.wcs.BaseWcsApiResponse;
import com.wms_main.model.dto.response.wcs.WcsApiResponse;

/**
 * wcs接口服务
 */
public interface IWcsApiService {
    /**
     * 发送堆垛机任务
     * @param request 任务请求
     * @return 发送结果
     */
    WcsApiResponse<WcsStackerTask> sendWcsStackerTask(WcsStackerTaskRequest request);

    /**
     * 发送拣选任务
     * @param request 任务请求
     * @return 发送结果
     */
    WcsApiResponse<WcsPickTask> sendPickTask(WcsPickTaskRequest request);

    /**
     * 请求释放载具
     * @param request 释放请求信息
     * @return 发送结果
     */
    BaseWcsApiResponse releaseBox(WcsReleaseBoxRequest request);

    /**
     * 取消拣选任务
     * @param request 取消请求信息
     * @return 发送结果
     */
    WcsApiResponse<WcsPickTask> cancelPickTask(WcsPickTaskRequest request);
}
