package com.tofly.gpsboot.service.es;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tofly.es.CarGpsUpload;
import com.tofly.es.dto.EsCarGpsUploadQueryDto;
import com.tofly.es.dto.EsQueryDto;

import java.util.List;
import java.util.Map;

/**
 * 车辆Gps信息服务接口
 * @author BZ-DJJ
 */
public interface ICarGpsUploadService {
    /**
     * 新增车辆GPSCar信息位置
     * @param carGpsUpload
     * @return
     */
    Boolean carGpsSave(CarGpsUpload carGpsUpload);

    /**
     * 更新Gps信息
     * @param carGpsUpload
     * @return
     */
    Boolean updateGpsCarInfo(CarGpsUpload carGpsUpload);

    /**
     * 根据ID获取GPSCar信息
     * @param id
     * @return
     */
    CarGpsUpload getByIdGpsCarInfo(String id);

    /**
     * 通过id删除GPSCar信息
     * @param id
     * @return
     */
    Boolean removeByIdGpsCarInfo(String id);

    /**
     * 获取GpsCar分页信息
     * @param page
     * @param dto
     * @return
     */
    Page<List<CarGpsUpload>> getPageGpsCarInfo(Page page, EsQueryDto dto);


    /**
     * 获取index所有GpsCar分页信息
     * @param page
     * @param dto
     * @return
     */
    Page<List<CarGpsUpload>> getAllPage(Page page, EsQueryDto dto);

    /**
     * 获取index所有GpsCar信息 非分页
     * @param dto
     * @return
     */
    List<CarGpsUpload> getAll(EsQueryDto dto);

    /**
     * 获取汽车GPS最新位置信息
     * @param dto
     * @return
     */
    Map<String,Object> getCarLocation(EsCarGpsUploadQueryDto dto);

    /**
     * 获取所有的汽车GPS信息（非分页orderby gpsTime）
     * @param dto
     * @return
     */
    List<CarGpsUpload> getGpsCarList(EsCarGpsUploadQueryDto dto);

    /**
     * 获取所有的汽车GPS信息（分页orderby gpsTime）
     * @param page
     * @param dto
     * @return
     */
    Page<List<CarGpsUpload>> getGpsCarListPage(Page page,EsCarGpsUploadQueryDto dto);

}
