package com.cico.nest.lcdp.boot.core.qxsd.domain.gateway;

import com.cico.nest.lcdp.boot.core.qxsd.adapter.web.request.LocusDataRequest;
import com.cico.nest.lcdp.boot.core.qxsd.adapter.web.request.PassingProfileRequest;
import com.cico.nest.lcdp.boot.core.qxsd.adapter.web.vo.PassProfileImageVO;
import com.cico.nest.lcdp.boot.core.qxsd.adapter.web.vo.PassingProfileVO;
import com.cico.nest.lcdp.boot.core.qxsd.domain.vehicle.HistoryTunnelVehicle;
import com.cico.nest.lcdp.boot.core.qxsd.domain.vehicle.TunnelRealTimeVehicle;
import com.cico.nest.lcdp.framework.common.pojo.PageResult;

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

/**
 * @author zws
 * @date 2024/8/5
 */
public interface VehicleGateway {

    /**
     * 推送实时车辆数据
     * @param realTimeVehicle 车辆数据
     */
    void pushRealTimeVehicleData(TunnelRealTimeVehicle realTimeVehicle,String tunnelId);

    /**
     * 车辆通行记录列表页
     * @param passingProfileRequest 查询条件
     * @return 通行记录
     */
    PageResult<PassingProfileVO> passingProfileList(PassingProfileRequest passingProfileRequest);

    /**
     * 通行记录图片
     * @param passProfileId 通行记录id
     * @return 图片数据
     */
    PassProfileImageVO passProfileImage(String passProfileId);

    /**
     * 通行记录图片
     * @param passProfileIds 通行记录id
     * @return 图片数据
     */
    Map<String,PassProfileImageVO> passProfileImageList(List<String> passProfileIds);


    /**
     * 获取车辆轨迹数据
     * @param request
     * @return
     */
    List<HistoryTunnelVehicle> getCarLocusData(LocusDataRequest request);

}
