package com.aiotagro.cattletrade.business.service;

import com.aiotagro.cattletrade.business.dto.DeliverListDto;
import com.aiotagro.cattletrade.business.dto.DeliveryAddDto;
import com.aiotagro.cattletrade.business.dto.DeliveryCreateDto;
import com.aiotagro.cattletrade.business.dto.DeliveryEditDto;
import com.aiotagro.cattletrade.business.dto.DeliveryQueryDto;
import com.aiotagro.cattletrade.business.entity.Delivery;
import com.aiotagro.cattletrade.business.vo.DeliveryLogVo;
import com.aiotagro.common.core.web.domain.AjaxResult;
import com.aiotagro.common.core.web.domain.PageResultResponse;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 运送清单表 服务类
 * </p>
 *
 * @author admin
 * @since 2024-12-26
 */
public interface IDeliveryService extends IService<Delivery> {

    AjaxResult addDelivery(DeliveryAddDto dto);

    /**
     * 创建运送清单（PC端）
     *
     * @param dto 运送清单创建DTO
     * @return AjaxResult
     */
    AjaxResult createDelivery(DeliveryCreateDto dto);

    /**
     * 编辑运送清单
     *
     * @param dto 运送清单编辑DTO
     * @return AjaxResult
     */
    AjaxResult updateDeliveryInfo(DeliveryEditDto dto);

    PageResultResponse<Delivery> pageQuery(DeliveryQueryDto dto);

    AjaxResult viewDelivery(Integer id);

    PageResultResponse<DeliveryLogVo> pageQueryList(DeliverListDto dto);

    AjaxResult detail(Integer id);

    PageResultResponse<Delivery> pageQueryListLog(DeliverListDto dto);

    /**
     * 查询百度鹰眼轨迹与停留点
     */
    AjaxResult queryYingyanTrack(Integer deliveryId);
}
