package com.jsowell.pile.mapper;

import java.util.List;

import com.jsowell.pile.domain.CarVinInfo;
import com.jsowell.pile.vo.CarVinInfoVO;
import org.springframework.stereotype.Component;

/**
 * 车辆vin码Mapper接口
 *
 * @author jsowell
 * @date 2023-06-07
 */
@Component
public interface CarVinInfoMapper {
    /**
     * 查询车辆vin码
     *
     * @param id 车辆vin码主键
     * @return 车辆vin码
     */
    public CarVinInfo selectCarVinInfoById(Long id);

    /**
     * 查询车辆vin码列表
     *
     * @param carVinInfo 车辆vin码
     * @return 车辆vin码集合
     */
    public List<CarVinInfo> selectCarVinInfoList(CarVinInfo carVinInfo);

    /**
     * 通过vin查询信息
     * @param vinCode
     * @return
     */
    CarVinInfo selectVinInfoByVin(String vinCode);

    /**
     * 新增车辆vin码
     *
     * @param carVinInfo 车辆vin码
     * @return 结果
     */
    public int insertCarVinInfo(CarVinInfo carVinInfo);

    /**
     * 修改车辆vin码
     *
     * @param carVinInfo 车辆vin码
     * @return 结果
     */
    public int updateCarVinInfo(CarVinInfo carVinInfo);

    /**
     * 删除车辆vin码
     *
     * @param id 车辆vin码主键
     * @return 结果
     */
    public int deleteCarVinInfoById(Long id);

    /**
     * 批量删除车辆vin码
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCarVinInfoByIds(Long[] ids);

    /**
     * 通过vin查询用户信息
     * @param vinCode
     * @return
     */
    CarVinInfoVO getMemberInfoByVinCode(String vinCode);

    /**
     * 通过memberId查询绑定的车辆vin列表
     * @param memberId
     * @return
     */
    List<CarVinInfoVO> getCarVinListByMemberId(String memberId);
}
