package com.dcsoft.system.vehicle.service;

import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.vo.SysAuthTree;
import com.dcsoft.system.vehicle.domain.CarInfo;

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

/**
 * 车辆信息Service接口
 *
 * @author nichun
 * @date 2023-12-26
 */
public interface ICarInfoService
{
    /**
     * 查询车辆信息
     *
     * @param customerId 车辆信息主键
     * @return 车辆信息
     */
    public CarInfo selectCarInfoByCustomerId(Long customerId);

    /**
     * 查询车辆信息列表
     *
     * @param carInfo 车辆信息
     * @return 车辆信息集合
     */
    public List<CarInfo> selectCarInfoList(CarInfo carInfo);

    /**
     * 新增车辆信息
     *
     * @param carInfo 车辆信息
     * @return 结果
     */
    public int insertCarInfo(CarInfo carInfo);

    /**
     * 修改车辆信息
     *
     * @param carInfo 车辆信息
     * @return 结果
     */
    public int updateCarInfo(CarInfo carInfo);

    /**
     * 批量删除车辆信息
     *
     * @param customerIds 需要删除的车辆信息主键集合
     * @return 结果
     */
    public int deleteCarInfoByCustomerIds(Long[] customerIds);

    /**
     * 删除车辆信息信息
     *
     * @param customerId 车辆信息主键
     * @return 结果
     */
    public int deleteCarInfoByCustomerId(Long customerId);

    public int addOrUpdate(SysPeople sysPeople);

    List<SysAuthTree> selectTree();

    List<Map<String,Object>>  carPlay(Long id);

    List<Map<String,Object>>  carPlayRecord(Long id);

    public int selectCarInfo(Long id,String flag);

    String importData(List<CarInfo> userList, boolean updateSupport, String operName);

    CarInfo selectCarInfoByPlate(String plate);
    /**
     * 还原删除车辆信息
     *
     * @param customerIds 需要还原的车辆信息主键集合
     * @return 结果
     */
    int restore(List<Long> customerIds);
}
