using Khd.Core.Domain.Dto.webapi;
using Khd.Core.Domain.Models;

namespace Khd.Core.Application.Interface
{
    public interface IWcsTaskApplication : IBaseApplication<WcsTask>
    {
        WcsTask Get(int id);
        WcsTask Add(WcsTask model);
        WcsTask Update(WcsTask model);

        ReponseagvCallbackDto AgvCallback(agvCallbackDto agvCallbackDto);

        /// <summary>
        /// 入库完成
        /// </summary>
        /// <returns></returns>
        string InWare(long taskId);
        /// <summary>
        /// 出库完成
        /// </summary>
        /// <returns></returns>
        string OutWare(long taskId);


        AgvCompeletedResponse MesToAgvComplete(AgvCompeleted agvCompeletedRequest);


        AgvCompeletedResponse TaskContinue(TaskContinue taskContinue);

        AgvCompeletedResponse TaskReturn(TaskReturn taskReturn);
        ReponseagvCallbackDto AgvCallback2(agvCallbackDto agvCallbackDto);
        ReponseMessage CallMaterial(CallMaterial callMaterial);
        ReponseMessage AGVTaskComplete();
        ReponseMessage CallAgvStopOrStart(CallAgvStopOrStart agvStopOrStart);


        ReponseMessage CancelPreScheduling();
    }
}