package cn.iocoder.yudao.module.rescue.service;

import cn.iocoder.yudao.module.rescue.domain.RescueCarInfo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

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

/**
 * 救援车辆信息Service接口
 *
 * @author zcy
 * @date 2023-09-12
 */
public interface IRescueCarInfoService  extends IService<RescueCarInfo>
{
    /**
     * 查询救援车辆信息
     *
     * @param id 救援车辆信息主键
     * @return 救援车辆信息
     */
    public RescueCarInfo selectRescueCarInfoById(Long id);
    /**
     * 查询救援车辆信息
     *
     * @param carNum 救援车辆信息主键
     * @return 救援车辆信息
     */
    public RescueCarInfo selectRescueCarInfoByNum(String carNum);

    /**
     * 查询救援车辆信息列表
     *
     * @param rescueCarInfo 救援车辆信息
     * @return 救援车辆信息集合
     */
    IPage<RescueCarInfo> selectRescueCarInfoList(RescueCarInfo rescueCarInfo, Page<RescueCarInfo> page);

    /**
     * 新增救援车辆信息
     *
     * @param rescueCarInfo 救援车辆信息
     * @return 结果
     */
    public int insertRescueCarInfo(RescueCarInfo rescueCarInfo);

    /**
     * 修改救援车辆信息
     *
     * @param rescueCarInfo 救援车辆信息
     * @return 结果
     */
    public int updateRescueCarInfo(RescueCarInfo rescueCarInfo);

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

    /**
     * 删除救援车辆信息信息
     *
     * @param id 救援车辆信息主键
     * @return 结果
     */
    public int deleteRescueCarInfoById(Long id);
    List<String> warnList(RescueCarInfo rescueCarInfo);

    /**
     * 救援大屏获取车辆预警接口
     * @param type keep 保养  insurance 保险 check 年审
     * @return
     */
    List<Map<String, Object>> getRescueCarEarlyWarning(String type);
}
