package cn.iocoder.yudao.module.asset.service.delivery;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.asset.controller.admin.delivery.vo.DeliveryOrderPageReqVO;
import cn.iocoder.yudao.module.asset.controller.admin.delivery.vo.DeliveryOrderRespVO;
import cn.iocoder.yudao.module.asset.controller.admin.delivery.vo.DeliveryOrderSaveReqVO;
import cn.iocoder.yudao.module.asset.dal.dataobject.delivery.DeliveryOrderDO;

import jakarta.validation.Valid;

public interface DeliveryOrderService {

    Long createDeliveryOrder(@Valid DeliveryOrderSaveReqVO createReqVO);

    void updateDeliveryOrder(@Valid DeliveryOrderSaveReqVO updateReqVO);

    void deleteDeliveryOrder(Long id);

    DeliveryOrderDO getDeliveryOrder(Long id);

    DeliveryOrderRespVO getDeliveryOrderDetail(Long id);

    PageResult<DeliveryOrderDO> getDeliveryOrderPage(DeliveryOrderPageReqVO pageReqVO);

    void completeDeliveryOrder(Long id);

}
