using BPA.AGV;
using BPA.MES.Base.Application.Services.AGVService.Dtos;

namespace BPA.MES.Base.Application.Services
{
    public interface IAGVThirdPartyService
    {

        /// <summary>
        /// 下发任务
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<KC_Response> Execute(KC_ExecuteRequest input);
        /// <summary>
        /// 取消任务
        /// </summary>
        /// <param name="kCCancelRequest"></param>
        /// <returns></returns>
        Task<KCResponse> Cancel(KCCancelRequest kCCancelRequest);
        /// <summary>
        /// 任务回调
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<AgvBody> ExecuteReply(AGVExecuteReplyRequest input);
        /// <summary>
        /// AGV上下料交互请求
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<AgvBody> LoadAndUnload(AGVLoadAndUnloadRequest input);
        /// <summary>
        /// 上下料反馈给AGV接口
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<RollerJobResponse> RollerJobExecute(Roller_JobRequest input);
    }
}
