package com.ningdatech.carapi.car.datascreen.service;

import com.ningdatech.carapi.car.datascreen.model.dto.DataScreenParam;
import com.ningdatech.carapi.car.datascreen.model.po.OnlineVehicleRegionsPO;
import com.ningdatech.carapi.car.datascreen.model.po.OnlineVehicleTimesPO;
import com.ningdatech.carapi.car.datascreen.model.vo.*;
import com.ningdatech.carapi.common.model.KeyValueDTO;
import com.ningdatech.carapi.common.model.po.MapDataPO;

import java.util.List;

public interface VehicleStatisticsService {

    List<VehicleTypeStatisticsVO> getVehicleTypesStatistics(DataScreenParam param);

    List<RegionDistributionStatisticsVO> getRegionDistribution(DataScreenParam param);

    List<InsureDistributionStatisticsVO> getInsureDistribution(DataScreenParam param);

    List<OperatorDistributionStatisticsVO> getOperatorDistribution(DataScreenParam param);

    List<YearVehicleStatisticsVO> getNewVehicleNum(DataScreenParam param);

    List<VehicleUsefulLifeStatisticsVO> getUsefulLiftDistribution(DataScreenParam param);

    Long getVehicleNums(DataScreenParam param);

    List<KeyValueDTO<Long, Long>> getVehicleNumsGroupByRegion(DataScreenParam param);

    List<MapDataPO> getOverspeedRegions(DataScreenParam param);

    List<MapDataPO> getViolationRegions(DataScreenParam param);

    List<MapDataPO> getOutDangerRegions(DataScreenParam param);

    List<MapDataPO> getInjuriesRegion(DataScreenParam param);

    List<MapDataPO> getDeathRegion(DataScreenParam param);

    List<OnlineVehicleTimesPO> getOnlineRateToday(DataScreenParam param);

    List<OnlineVehicleRegionsPO> getVehicleOnlineRegions(DataScreenParam param);
}
