package com.prolog.rdc.tms.service.intelligent;

import com.prolog.rdc.tms.model.dto.intelligent.BranchDTO;
import com.prolog.rdc.tms.model.dto.intelligent.ConsigneeDTO;
import com.prolog.rdc.tms.model.dto.intelligent.CustomerDTO;
import com.prolog.rdc.tms.model.dto.intelligent.VehicleDTO;
import com.prolog.rdc.tms.model.dto.intelligent.VehicleTypeDTO;
import com.prolog.rdc.tms.model.dto.intelligent.VehicleTypeVehicleDTO;

import java.util.List;

/**
 * @author hongbo.pan
 * @date 2023/8/28
 */
public interface IntelligentVehicleService {

    /**
     * groupByVehicleType
     */
    List<VehicleTypeVehicleDTO> groupByVehicleType();

    /**
     * groupByVehicle
     */
    List<VehicleTypeVehicleDTO> groupByVehicle();

    /**
     * findVehicleByPlateNumber
     */
    List<VehicleDTO> findVehicleByPlateNumberList(List<String> plateNumberList);

    /**
     * findVehicleByIdList
     */
    List<VehicleDTO> findVehicleByIdList(List<Long> idList);

    /**
     * findVehicleTypeByIdList
     */
    List<VehicleTypeDTO> findVehicleTypeByIdList(List<Long> idList);

    /**
     * findBranchByIdList
     */
    List<BranchDTO> findBranchByIdList(List<Long> idList);

    /**
     * findCustomerByIdList
     */
    List<CustomerDTO> findCustomerByIdList(List<Long> idList);

    /**
     * findConsigneeByIdList
     */
    List<ConsigneeDTO> findConsigneeByIdList(List<Long> idList);

}
