package com.prolog.rdc.tms.app.service;

import java.util.List;

import com.prolog.rdc.tms.app.model.dto.AppointmentBillDetailQueryDTO;
import com.prolog.rdc.tms.app.model.dto.AppointmentBillQueryDTO;
import com.prolog.rdc.tms.app.model.dto.AppointmentConfirmationDTO;
import com.prolog.rdc.tms.app.model.dto.PendingAppointmentDetailQueryDTO;
import com.prolog.rdc.tms.app.model.dto.PendingAppointmentQueryDTO;
import com.prolog.rdc.tms.app.model.dto.WarehouseAppointmentResourceQueryDTO;
import com.prolog.rdc.tms.app.model.vo.AppointmentBillDetailQueryVO;
import com.prolog.rdc.tms.app.model.vo.AppointmentBillQueryVO;
import com.prolog.rdc.tms.app.model.vo.AppointmentCancelVO;
import com.prolog.rdc.tms.app.model.vo.AppointmentConfirmationVO;
import com.prolog.rdc.tms.app.model.vo.PendingAppointmentDetailQueryVO;
import com.prolog.rdc.tms.app.model.vo.PendingAppointmentQueryVO;
import com.prolog.rdc.tms.app.model.vo.WarehouseAppointmentResourceQueryVO;

/**
 *
 * 司机APP-待预约服务层
 *
 * @className :PendingAppointmentService
 * @author :qian.yh
 * @date :2022/7/4
 * @description :
 * @version :1.0.0
 */
public interface PendingAppointmentService {

	// 仓库任务数汇总查询
	List<PendingAppointmentQueryDTO> pendingAppointmentQuery(PendingAppointmentQueryVO pendingAppointmentQueryVO) throws Exception;

	/**
	 * 司机待预约派车单模式查询
	 * @param pendingAppointmentQueryVO
	 * @return
	 */
	List<PendingAppointmentQueryDTO> pendingAppointmentQueryLoadBill(PendingAppointmentQueryVO pendingAppointmentQueryVO);

	// 仓库预约资源查询
	List<PendingAppointmentDetailQueryDTO> pendingAppointmentDetailQuery(PendingAppointmentDetailQueryVO pendingAppointmentDetailQueryVO) throws Exception;

	// 仓库预约资源查询
	WarehouseAppointmentResourceQueryDTO warehouseAppointmentResourceQuery(WarehouseAppointmentResourceQueryVO warehouseAppointmentResourceQueryVO) throws Exception;

	// 预约确认
	AppointmentConfirmationDTO appointmentConfirmation(AppointmentConfirmationVO appointmentConfirmationVO) throws Exception;

	// 司机预约单信息查询
	List<AppointmentBillQueryDTO> appointmentBillQuery(AppointmentBillQueryVO appointmentBillQueryVO) throws Exception;

	// 司机预约中信息查询
	List<AppointmentBillQueryDTO> appointmentDoingBillQuery(AppointmentBillQueryVO appointmentBillQueryVO) throws Exception;
	List<AppointmentBillDetailQueryDTO> appointmentBillDetailQuery(AppointmentBillDetailQueryVO appointmentBillDetailQueryVO) throws Exception;

	// 预约取消
	void appointmentCancel(AppointmentCancelVO appointmentCancelVO) throws Exception;

}
