package com.prolog.cs.biz.outbound.service;

import com.prolog.cs.biz.outbound.model.dto.MoveTaskDODTO;
import com.prolog.cs.biz.outbound.model.dto.MoveTaskPrintQueryDTO;
import com.prolog.cs.biz.outbound.model.dto.MoveTaskStatusSyncDTO;
import com.prolog.cs.biz.outbound.model.dto.MoveTaskUpdateDTO;
import com.prolog.framework.bz.common.print.PrintData;
import com.prolog.framework.common.message.RestMessage;
import com.prolog.upcloud.base.inventory.vo.StockWaveResultDetailVO;
import com.prolog.upcloud.base.inventory.vo.StockWaveResultVO;

import java.util.List;

public interface MoveTaskService {

    RestMessage<Boolean> updateStatus(List<MoveTaskUpdateDTO> moveTaskUpdateDTOS);

    Boolean addMoveTask(List<MoveTaskDODTO> moveTaskDODTO);

    RestMessage<Long> instore(MoveTaskStatusSyncDTO details);

    PrintData print(MoveTaskPrintQueryDTO moveTaskPrintQueryDTO);

    void extractedMove(StockWaveResultVO waveResult, List<StockWaveResultDetailVO> successBillsResults);

    void extractedMoveNoTx(StockWaveResultVO waveResult, List<StockWaveResultDetailVO> successBillsResults);

    void changeQty(List<MoveTaskDODTO> moveTaskDODTOS);
}
